如何修改触发器,以便触发器在编辑时通过电子邮件发送,但速度却不那么快?

时间:2018-12-12 22:08:14

标签: google-apps-script google-sheets triggers

我有一个脚本,可以在提交Google表单后创建其他文件。它还为所述新文档设置了触发器,以便在文档创建后对文档进行任何编辑时,都会向人们发送电子邮件,例如

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

所有逻辑都起作用,但是...触发器非常敏感。 每次,只要有人在文档中进行一次击键,就会触发。有人撰写段落时反复开除没有多大意义。比方说,在最后一次编辑后10分钟触发,就更有意义了。 (或其他内容。不发送垃圾邮件的任何内容。)

是否可以修改触发器,以减少触发频率(我需要基于时间的触发器),或者以编程方式更改Google表格保存的频率?

作为最后的选择,我想我可以创建一个隐藏的工作表来捕获上次修改的时间,并且如果后续的修改少于X分钟前则不能发送电子邮件,但这有点笨拙并且没有真正的吸引力。希望我可以完全在Google脚本中完成此操作。

2 个答案:

答案 0 :(得分:1)

您可以使用Properties Service保存上次发送电子邮件的时间戳,并将其与当前执行的实际时间进行比较。

答案 1 :(得分:1)

我不确定如何实现此功能以满足您的需求,但是由于您不希望使用基于时间的触发器,并且您已经在使用onEdit(),因此您应该可以使用 onEdit(e)e.oldValue检查是否值得进行此更改。