这是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
但它仍然是错误的。 有人知道我哪里出错了吗?感谢。
答案 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