Как я могу изменить триггер так, чтобы он отправлял по электронной почте после редактирования, но не так быстро? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть скрипт, который создает дополнительные файлы при отправке формы Google.Он также устанавливает триггер для указанного нового документа, так что люди получают по электронной почте, когда в документ вносятся какие-либо изменения после его создания, например,

ScriptApp.newTrigger("sendEmailOnModification")
         .forSpreadsheet(SpreadsheetApp.openById(fileId))
         .onEdit()
         .create();

Логика все работает, но ... триггерчрезвычайно чувствительный Каждый раз, когда кто-то нажимает клавишу в документе, он срабатывает.Не имеет смысла многократно стрелять, когда кто-то пишет абзац;имеет смысл, скажем, выстрелить через 10 минут после последнего редактирования.(Или что-то еще. Все, что не спамит по электронной почте.)

Есть ли способ изменить триггер так, чтобы он срабатывал реже (я не хочу основанный на времени триггер)или каким-либо другим способом программно изменить частоту сохранения Google Sheets?

В качестве крайней меры, я полагаю, я мог бы создать скрытый лист, который фиксирует время последнего изменения и условие не отправлять электронное письмо, если последующие изменения меньше Xминут назад, но это немного неуклюже и не очень привлекательно.Надеюсь, я могу сделать это полностью в Google Scripts.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Я не уверен, как вы могли бы реализовать это в соответствии с вашими потребностями, но, поскольку вы не хотите использовать триггер, основанный на времени, и вы уже используете onEdit(), вы сможете использовать onEdit(e) и e.oldValue, чтобы проверить, стоит ли изменение сообщения.

0 голосов
/ 13 декабря 2018

Вы можете использовать Службу свойств , чтобы сохранить метку времени последнего отправления электронного письма и сравнить его с фактическим временем текущего выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...