Gmail附加组件中的SERVICE_AUTH_URL和SERVICE_AUTH_TOKEN_URL是什么?

时间:2017-12-08 02:30:20

标签: google-apps-script add-on gmail-addons

这是Google的代码

 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

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

2 个答案:

答案 0 :(得分:0)

此处,SERVICE_AUTH_TOKEN_URL是获取访问令牌的服务的其余api url,使用oauth登录过程中生成的auth代码刷新令牌。可能您可能错过了回调实现。请按照以下代码进行操作:

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>

答案 1 :(得分:0)

我一直收到“抱歉,目前无法打开文件”。消息,直到我意识到您必须向网址添加秘密访问代码以及状态。

OAuth2服务器(在您的情况下为account.simontest.com)需要这样设置重定向网址的格式:

伪代码:

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

有关详情,请参见此页面:OAuth2 Simplified