Я работаю над надстройкой GMail, которая подключается к стороннему сервису через OAuth2. Для получения кода авторизации используется следующий 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>');
}
The createAccessToken функция успешно вызывается, а надстройка получает токен доступа. Однако HTML не отображается в всплывающем окне. Вместо этого есть заполнитель со следующей ошибкой: «Сценарий завершен, но ничего не возвращен».
В результате я застрял в окне ошибки, которое не может быть закрыто автоматически и не сообщает пользователю, что ему необходимо закрыть окно, чтобы продолжить работу с надстройкой.
Что-то не так, что я делаю, или это какая-то ошибка или удаленная функция? Спасибо за любые предложения.
UPD: ошибка выглядит следующим образом