使用 Google Apps 脚本时 OAuth 未授予访问权限

OAuth not granting access while using Google Apps Script

我正在尝试调用 StackExchange 的 API,使用 Google Apps 脚本和 Google 表格。我无法弄清楚 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://whosebug.com/oauth')
  .setTokenUrl('https://whosebug.com/oauth/access_token')
  .setClientId(CLIENT_ID)
  .setClientSecret(CLIENT_SECRET)
  .setCallbackFunction('authCallback')
  .setPropertyStore(PropertiesService.getUserProperties())
  .setRedirectUri('https://stackexchange.com/oauth/login_success')
  .setScope('global');
}

当我调用它并记录响应时,我总是得到 "false":

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

感谢您的帮助!

最明显的问题是 global 不是 a valid Stack Exchange scope

大概用.setScope('read_inbox');开始。

此外,请确保:

  1. 你有 registered your app and configured it for explicit (server-side) OAuth2。 (省略您案例中的端口信息。)
  2. 显然你应该使用 https://script.google.com/macros/d/{SCRIPT ID}/usercallback 作为 Application Website,根据 these instructions??。
  3. 这意味着您将使用 script.google.com 作为 OAuth Domain