Почему не выполняется функция в триггере onEdit? Google Apps Script
У меня есть простенький скрипт, в котором при активации флажка должен выводиться текст в тостер и выполняться функция. Но при изменении флажка текст в тостере появляется, а функция sendAdmin не выполняется. Я пробовал запустить вручную sendAdmin, - сообщение успешно отправляется, а при установке флажка автоматически не срабатывает.
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
var column = range.getColumn();
var flagColumnIndex = 17; // Индекс столбца "Q"
var targetSheetName = "BOT";
// Проверяем, что изменение произошло на нужном листе ("BOT") и в столбце флажка
if (sheet.getName() == targetSheetName && column == flagColumnIndex) {
var flag = range.getValue();
if (flag) {
// Флажок был активирован
SpreadsheetApp.getActiveSpreadsheet().toast("Готово"); // Вывод текста в тостер
sendAdmin(); // Вызов функции sendAdmin с нужными параметрами
}
}
}
function sendAdmin(){
sendMessage(botAdmin, "Флажок установлен");
}
Ответы (1 шт):
Назовите функции onEditTrigger(e) и поставьте обычный триггер на изменение на листе. Сообщение не отправляется, так как onEdit не имеет доступа к внешним сервисам (он необходим для UrlFetchApp.fetch, который используется в отправке сообщения через телеграмм). Скорее всего нужно будет добавить разрешение для работы с внешними сервисами в манифест проекта appsscript.json, если скрипт не попросит его сам.
{
"timeZone": "Europe/Moscow",
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request"
],
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
Ограничения простых триггеров https://developers.google.com/apps-script/guides/triggers#restrictions