无法在 GMail 插件的 Google Apps 脚本回调页面上提供 HTML
Can't serve HTML on the Google Apps Script callback page in a GMail add-on
我正在开发一个通过 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 片段摘自 here):
function authCallback( request )
{
createAccessToken( request.parameter.code );
return HtmlService.createHtmlOutput('Success! <script>setTimeout(function() { top.window.close() }, 1);</script>');
}
createAccessToken 函数被成功调用,加载项获得访问令牌。但是,HTML 未在弹出窗口 window 中提供。相反,有一个带有以下错误的占位符:"The script completed but did not return anything."
因此,我遇到了错误 window,该错误无法自动关闭,也没有告诉用户他们必须关闭 window 才能继续使用添加-on.
我做错了什么或者这是某种错误或放弃的功能?感谢您的任何建议。
更新:
错误看起来像这样
事实证明 HtmlService 在这种情况下确实有效。我遇到了 authCallback 的函数名称冲突,因此没有调用正确的函数。对不起,错误信息。如果有人在处理回调时遇到问题 window,请按照问题中的描述进行操作。
我正在开发一个通过 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 片段摘自 here):
function authCallback( request )
{
createAccessToken( request.parameter.code );
return HtmlService.createHtmlOutput('Success! <script>setTimeout(function() { top.window.close() }, 1);</script>');
}
createAccessToken 函数被成功调用,加载项获得访问令牌。但是,HTML 未在弹出窗口 window 中提供。相反,有一个带有以下错误的占位符:"The script completed but did not return anything."
因此,我遇到了错误 window,该错误无法自动关闭,也没有告诉用户他们必须关闭 window 才能继续使用添加-on.
我做错了什么或者这是某种错误或放弃的功能?感谢您的任何建议。
更新:
错误看起来像这样
事实证明 HtmlService 在这种情况下确实有效。我遇到了 authCallback 的函数名称冲突,因此没有调用正确的函数。对不起,错误信息。如果有人在处理回调时遇到问题 window,请按照问题中的描述进行操作。