OAuth не предоставляет доступ при использовании скрипта Google Apps - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь вызвать API StackExchange, используя Google Apps Script и Google Sheets. Я не могу понять, где в процессе OAuth все идет не так. Мой текущий код не предоставляет доступ:

function getStackExchangeService_() {
  var CLIENT_ID = PropertiesService.getScriptProperties().getProperty('SE_CLIENT_ID');
  var CLIENT_SECRET = PropertiesService.getScriptProperties().getProperty('SE_CLIENT_SECRET');

  return OAuth2.createService('StackExchange')
  .setAuthorizationBaseUrl('https://stackoverflow.com/oauth')
  .setTokenUrl('https://stackoverflow.com/oauth/access_token')
  .setClientId(CLIENT_ID)
  .setClientSecret(CLIENT_SECRET)
  .setCallbackFunction('authCallback')
  .setPropertyStore(PropertiesService.getUserProperties())
  .setRedirectUri('https://stackexchange.com/oauth/login_success')
  .setScope('global');
}

Когда я вызываю это и регистрирую ответ, я всегда получаю «ложь»:

var service = getStackExchangeService_();
Logger.log(service.hasAccess());

Спасибо за помощь!

1 Ответ

0 голосов
/ 14 января 2019

Наиболее очевидная проблема заключается в том, что global не является допустимой областью обмена стека .

Вероятно, используйте .setScope('read_inbox'); для запуска.

Также убедитесь, что:

  1. Вы зарегистрировали свое приложение и настроили его для явного (на стороне сервера) OAuth2 . (Опустите информацию о порте в вашем случае.)
  2. Очевидно, вы должны использовать https://script.google.com/macros/d/{SCRIPT ID}/usercallback для Application Website, для этих инструкций ??.
  3. Это означает, что вы будете использовать script.google.com для OAuth Domain.
...