Свойства пользователя сценария AppS в ячейке или из меню ⇐ Javascript
-
Гость
Свойства пользователя сценария AppS в ячейке или из меню
Я разрабатываю AppScript и заметил странное поведение в отношении UserProperties. У меня есть следующая функция, которая запускается кнопкой меню:
function inputApiKey() { вар ui = SpreadsheetApp.getUi(); вар APIKeyValue; if (!!PropertiesService.getUserProperties().getProperty(API_KEY)) apiKeyValue = ui.prompt('Ваш текущий ключ API:\n' + PropertiesService.getUserProperties().getProperty(API_KEY) + '\n\nВведите новый Ключ API ниже:\n', ui.ButtonSet.OK); else apiKeyValue = ui.prompt('Добавьте сюда свой ключ API:\n', ui.ButtonSet.OK); if (apiKeyValue.getResponseText()) PropertiesService.getUserProperties().setProperty(API_KEY, apiKeyValue.getResponseText()); } Теперь предположим, что электронная таблица была создана пользователем 1, и пользователь 1 использует указанную выше функцию для ввода ключа API. Затем предположим, что Пользователь 1 делится листом с Пользователем 2, а Пользователь 2 вводит отдельный ключ API.
Теперь предположим, что у меня есть вторая функция:
function MyApiKey() { return PropertiesService.getUserProperties().getProperty(API_KEY); } Если пользователь 1 вызывает эту функцию с помощью кнопки меню, она возвращает ключ API пользователя 1. Если Пользователь 1 вызывает эту функцию из ячейки, она возвращает ключ API Пользователя 1.
Если пользователь 2 вызывает эту функцию с помощью кнопки меню, она возвращает ключ API пользователя 2. Но если Пользователь 2 вызывает эту функцию из ячейки, она возвращает ключ API Пользователя 1.
Может ли кто-нибудь помочь мне понять, почему это происходит и как это решить?
Я разрабатываю AppScript и заметил странное поведение в отношении UserProperties. У меня есть следующая функция, которая запускается кнопкой меню:
function inputApiKey() { вар ui = SpreadsheetApp.getUi(); вар APIKeyValue; if (!!PropertiesService.getUserProperties().getProperty(API_KEY)) apiKeyValue = ui.prompt('Ваш текущий ключ API:\n' + PropertiesService.getUserProperties().getProperty(API_KEY) + '\n\nВведите новый Ключ API ниже:\n', ui.ButtonSet.OK); else apiKeyValue = ui.prompt('Добавьте сюда свой ключ API:\n', ui.ButtonSet.OK); if (apiKeyValue.getResponseText()) PropertiesService.getUserProperties().setProperty(API_KEY, apiKeyValue.getResponseText()); } Теперь предположим, что электронная таблица была создана пользователем 1, и пользователь 1 использует указанную выше функцию для ввода ключа API. Затем предположим, что Пользователь 1 делится листом с Пользователем 2, а Пользователь 2 вводит отдельный ключ API.
Теперь предположим, что у меня есть вторая функция:
function MyApiKey() { return PropertiesService.getUserProperties().getProperty(API_KEY); } Если пользователь 1 вызывает эту функцию с помощью кнопки меню, она возвращает ключ API пользователя 1. Если Пользователь 1 вызывает эту функцию из ячейки, она возвращает ключ API Пользователя 1.
Если пользователь 2 вызывает эту функцию с помощью кнопки меню, она возвращает ключ API пользователя 2. Но если Пользователь 2 вызывает эту функцию из ячейки, она возвращает ключ API Пользователя 1.
Может ли кто-нибудь помочь мне понять, почему это происходит и как это решить?
Мобильная версия