【发布时间】:2016-02-11 12:26:40
【问题描述】:
我正在为 Google App Scripts(Google Docs Addon)使用以下库:
https://github.com/googlesamples/apps-script-oauth2
我有我的脚本作为返回 url:
https://script.google.com/macros/d/___/usercallback
我有以下运行良好的回调:
function authCallback(request) {
var Service = geService();
var isAuthorized = Service.handleCallback(request);
if (isAuthorized) {
return HtmlService.createHtmlOutput('Success! You can close this tab.');
} else {
return HtmlService.createHtmlOutput('Denied. You can close this tab');
}
}
在插件 UI 的主代码中,我有以下用于添加侧边栏的开关:
if(!Service.hasAccess()) {
var authorizationUrl = Service.getAuthorizationUrl();
template = HtmlService.createTemplateFromFile('HuddleSidebarNoAuth');
template.authorizationUrl = authorizationUrl;
html = template.evaluate();
} else {
template = HtmlService.createTemplateFromFile('HuddleSidebar');
html = template.evaluate();
}
我需要它在成功回调时重新运行它,以便它达到hasAccess 条件并重新呈现侧边栏而不刷新页面。我会以错误的方式解决这个问题吗?
【问题讨论】:
-
你能澄清一下这个问题吗?据我所知,名为
Service的Apps Script 类没有定义任何OAuth 方法(如您正在调用的hasAccess()函数)。但是,AuthorizationInfo类上有一个方法getAuthorizationUrl(),它由ScriptApp.getAuthorizationInfo()返回——这是您使用的吗?
标签: javascript oauth google-apps-script