Независимо от того, что я делаю - мой обратный вызов из newOpenLink () не вызывается.
Код ниже показывает, что я делаю:
1. Я открываю ссылку на страницу на нашем сервере, которая получает некоторую информацию
2. Я использую строку в "redirect_uri" части строки запроса, чтобы перезагрузить страницу
3. страница перезагружается (хотя вместо "https://script.google.com/macros/d/..." url" она заканчивается "https://script.google.com/a/macros/my_domain/d/…")
- текст на странице:
Google Диск:
Извините, в данный момент невозможно открыть файл.
Пожалуйста, проверьте адрес и попробуйте еще раз
Ниже приведен код, который я использую - любая помощь очень ценится.
Спасибо
Sam
function getTokenCallback(data) {
Logger.log("getTokenCallback executed");
}
public createInstance()
{
var card = CardService.newCardBuilder();
card.setHeader(
CardService.newCardHeader()
.setTitle('Login')
);
var section = CardService.newCardSection();
var loginButton = CardService.newTextButton()
.setText("Login")
.setOpenLink(buildOpenLinkAction());
section.addWidget(loginButton);
card.addSection(section);
return [card.build()];
}
public buildOpenLinkAction()
{
var state = generateNewStateToken("getTokenCallback", "test");
// baseUrl is global pointing to our external server
var myUrl = baseUrl + "test-login.html";
var htmlUrl = myUrl + "?redirect_uri=" + getRedirectURI() + "&state=" + state;
return CardService.newOpenLink()
.setUrl(htmlUrl)
.setOpenAs(CardService.OpenAs.OVERLAY)
.setOnClose(CardService.OnClose.RELOAD_ADD_ON);
}
public generateNewStateToken(callbackName, user_info)
{
return ScriptApp.newStateToken()
.withMethod(callbackName)
.withArgument("user_info", JSON.stringify(user_info))
.withTimeout(3600)
.createToken();
}
public getRedirectURI()
{
var scriptId = ScriptApp.getScriptId();
return "https://script.google.com/macros/d/" + scriptId + "/usercallback";
}