1

这是谷歌的代码

 function getOAuthService() {
 return OAuth2.createService('SERVICE_NAME')
      .setAuthorizationBaseUrl('SERVICE_AUTH_URL')
      .setTokenUrl('SERVICE_AUTH_TOKEN_URL')
      .setClientId('CLIENT_ID')
      .setClientSecret('CLIENT_SECRET')
      .setScope('SERVICE_SCOPE_REQUESTS')
      .setCallbackFunction('authCallback')
      .setCache(CacheService.getUserCache())
      .setPropertyStore(PropertiesService.getUserProperties());
}

我不知道 SERVICE_AUTH_URL 和 SERVICE_AUTH_TOKEN_URL 是什么

这是我的

var SERVICE_AUTH_URL = 'http://account.simontest.com/a/login?app=addon';

提交并登录后,我将我的网站重定向到此链接: https ://script.google.com/macros/d/13-mVZUel3ZnYoFKC5JrRUkWD12iMSa3REEfddfdf71ucXm1rA_s0/usercallback 并收到此消息:

“抱歉,目前无法打开文件。

请检查地址并重试。” https://imgur.com/a/C8Iep

但这仍然是错误的。有人知道我哪里出错了吗?谢谢。

4

2 回答 2

0

我一直收到“抱歉,此时无法打开文件”。消息,直到我意识到您必须将秘密访问代码以及状态附加到 url。

OAuth2 服务器(在您的情况下为 account.simontest.com)需要像这样格式化重定向 url:

伪代码:

$redirect_uri = $redirect_uri . "?code=" . $your_secret_code . "&state=" . $state

有关更多详细信息,请参阅此页面:OAuth2 Simplified

于 2018-07-26T17:00:28.643 回答
0

这里,SERVICE_AUTH_TOKEN_URL 是服务的rest api url,用于获取访问令牌,使用oauth登录过程中生成的auth code刷新令牌。可能,您可能错过了回调实现。请按照以下代码:

var oauthService = getOAuthService();

function authCallback(oauthResponse) {
  try {
    console.log("oauthResponse->" + JSON.stringify(oauthResponse));
    oauthService.handleCallback(oauthResponse);
    return HtmlService.createHtmlOutputFromFile("auth-success");
  } catch (e) {
    var template = HtmlService.createTemplateFromFile("auth-failure");
    template.errorMessage = e.toString();
    return template.evaluate();
  }
}

auth-success.html:

<!DOCTYPE html>
<html>

  <head>
    <base target="_top">
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
  </head>
  <body>
    <div class="sidebar">
        <p>Your GitHub account has been connected.</p>
    </div>
  </body>
  <script>
  setTimeout(function() {
    top.window.close();
  }, 2000);
  </script>
</html>

auth-failure.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
  </head>
  <body>
    <div class="sidebar">
      <p>Your GitHub account was not connected. Please try again.</p>
      <h3>Details:</h3>
      <pre><?= errorMessage ?></pre>
    </div>
  </body>
</html>

于 2018-03-29T14:28:45.160 回答