В настоящее время я разрабатываю надстройку редактора для Google Sheets с использованием Apps Script. Есть функция onOpen
, которая настраивает пункты меню.
У меня также есть переменная CONFIG в корне (не в какой-либо функции), например:
const CONFIG = {}
function setProperties_(){
CONFIG.tmpSheetId = PropertiesService.getScriptProperties().getProperty('TMP_SHEET_ID');
}
setProperties_();
Если я запускаю какие-либо функции из редактора сценариев, все работает нормально. Без вопросов. Однако, когда я выполняю тестовое развертывание, я получаю следующую ошибку с момента запуска onOpen()
:
You do not have permission to call getScriptProperties
Я пробовал добавлять различные области скриптов из здесь, но ничего не работает.
Я бы назвал config
глобальной переменной. И то, как вы оставили вызов функции setProperties_()
в глобальном пространстве, означает, что каждый раз, когда вы выполняете любой вызов функции в проекте, вы также вызываете setProperties(). Что может быть частью вашей проблемы. Я хотел бы помочь вам больше, но я достаточно хорошо знаю кодирование, но не так много теории более высокого уровня. Извини. Надеюсь, что кто-то из других волонтеров сможет вам помочь.
Когда вы впервые устанавливаете надстройку (запись для надстройки становится видимой в меню листа), она запускается в AuthMode.NONE, что позволяет вам проверять только языковой стандарт текущего пользователя. См. таблицу здесь Жизненный цикл авторизации дополнений Google
Как указал Купер, вызов setProperties_() в глобальной области видимости происходит до того, как ваше дополнение будет авторизовано пользователем. Переместите вызов функции во вложенную функцию и сначала убедитесь, что вы завершили процесс авторизации.
Привет, Риаз. Было бы очень полезно, если бы вы могли поделиться функцией
OnOpen()
, которую вы используете.