У меня есть Google Sheet, который имеет onOpen(e)
Простой триггер . Очевидно, что все будет работать нормально, без необходимости авторизации, и покажет пользователю меню.
Когда пользователь щелкнет по пункту меню, он выполнит функцию, требующую авторизации, например, вызовет DriveApp...
.
В первый раз, когда пользователь щелкает пункт меню, он просит его авторизовать скрипт.
То, что я хотел бы сделать, это перед тем, как GAS попросит пользователя авторизоваться, если необходимо, проверить, нужно ли скрипту авторизоваться, и сделать что-то еще, что не требует авторизации (например, показывать предупреждение ).
Я знаю, что должен использовать getAuthorizationStatus()
, но не могу понять, как.
Я начал с кода ниже, но как только я выберите пункт меню one
, он запрашивает авторизацию и ничего не регистрирует. Поэтому я не уверен, как проверить статус авторизации ...
function onOpen(e)
{
var ui = SpreadsheetApp.getUi();
ui.createMenu("Menu")
.addItem("One", "one")
.addItem("Two", "two")
.addToUi();
}
function one()
{
var a = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
console.log(a.getAuthorizationStatus());
console.log(a.getAuthorizationUrl());
var d = DriveApp.getFolders();
}
function two()
{
}