我正在开发一个通过 OAuth2 连接到第三方服务的 GMail 插件。要获取授权代码,请使用以下重定向 URI:https://script.google.com/macros/d/[SCRIPT_ID]/usercallback。这是触发授权的片段:
var stateToken = ScriptApp.newStateToken()
.withMethod( "authCallback" )
.withTimeout( 120 )
.createToken();
var authUrl = _authBaseUrl
+ "&client_id=" + encodeURIComponent( _clientId )
+ "&redirect_uri=" + encodeURIComponent( _redirectUri )
+ "&state=" + stateToken;
CardService.newAuthorizationException()
.setAuthorizationUrl( authUrl )
.setResourceDisplayName( "Resource" )
.throwException();
这是回调函数(HTML 片段取自此处):
function authCallback( request )
{
createAccessToken( request.parameter.code );
return HtmlService.createHtmlOutput('Success! <script>setTimeout(function() { top.window.close() }, 1);</script>');
}
createAccessToken函数被成功调用,并且插件获得一个访问令牌。但是,HTML 不会在弹出窗口中提供。相反,有一个带有以下错误的占位符:“脚本已完成但未返回任何内容。”
结果,我遇到了一个无法自动关闭的错误窗口,也没有告诉用户他们必须关闭窗口才能继续使用插件。
我做错了什么,或者这是某种错误或删除的功能?感谢您的任何建议。
UPD:错误看起来像这样