onOpen не запускается для других пользователей, кроме владельца. Как это исправить? Google Script GAS
После обновления общей электронной таблицы onOpen не запускается для других пользователей, у которых также есть доступ.
Но владелец может запускать коды и скрипт.
Code.gs
function onOpen(e) {
test();
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addToUi();
SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
.createMenu('Custom Menu').addItem('Test', 'test').addToUi();
};
function test() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.prompt('Spreadsheet Restriction', 'Enter password:', ui.ButtonSet.OK);
// Process the user's response.
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
// User clicked "OK".
} else if (button == ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert('Spreadsheet is protected.');
test();
}
};
function myFunction() {
}
Таблицу доступа и сценарий уже предоставили другим пользователям, но они все еще не видят, что они работают. Цените вашу помощь, ребята... Спасибо!
1 ответ
Пользователи вашего Листа / скрипта должны иметь доступ к редактированию документа Таблиц, чтобы
onOpen()
триггер для выполнения. Из документации:Они не запускаются, если файл открыт только для чтения (просмотр или комментарий).
Чтобы использовать
prompt()
метод вonOpen()
функция, вы должны использовать устанавливаемый курок. Кроме того, триггер должен быть настроен пользователем, который собирается его использовать. То же самое относится и к другим функциям класса UI, таким какshowModalDialog()
.
Эти строгие правила, скорее всего, применяются для защиты конечного пользователя от потенциальных мошенников. Если вы хотите защитить свой документ Таблиц паролем, я предлагаю вам попробовать другие решения, такие как это,