Я работаю над аддоном Form, которому нужно 2 вещи:
При первом открытии аддона пользователь увидит пункт меню «Начало работы», после этогоон настроит некоторые параметры для использования аддона
После этого, во второй раз, когда он открывает меню аддона, он увидит другие пункты меню, такие как «Функция 1»,«Feature 2», ... и он больше не будет видеть пункт меню «Get Started», потому что он уже настроил параметры
Я думал, что это будет связано с onOpen
функция.Вот что я попробовал:
const onOpen = () => {
try {
const userProperties = PropertiesService.getUserProperties()
let isFinishedSetup = userProperties.getProperty('IS_FINISHED_SETUP')
if (isFinishedSetup === '1') {
FormApp.getUi()
.createAddonMenu()
.addItem('Feature One', 'featureOne')
.addItem('Feature Two', 'featureTwo')
.addToUi()
} else {
FormApp.getUi()
.createAddonMenu()
.addItem('Get Started', 'showGetStarted')
.addToUi()
}
} catch (err) {
FormApp.getUi()
.createAddonMenu()
.addItem('Get Started', 'showGetStarted')
.addToUi()
}
}
По сути, я пытаюсь получить свойство IS_FINISHED_SETUP из PropertiesService, проверить, верно ли это.
В случае, если не удается получить getUserProperties (), я обрабатываюэто в выражении catch
Но это не сработает , кнопка меню аддона не отображается.
В консоли яувидеть ошибку you don't have the permission to call getUserProperties
или что-то в этом роде.
Я искал в Google и нашел причину: функция onOpen не может использовать службы, для которых требуются области
Но вы можете только авторизовать еепосле отображения меню
Так как я могу справиться с этой ситуацией?Я хочу разные меню в зависимости от того, закончила ли пользователь настройку или нет.