Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 我如何修改触发器,使其在编辑时发送电子邮件,但不会这么快?_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 我如何修改触发器,使其在编辑时发送电子邮件,但不会这么快?

Google apps script 我如何修改触发器,使其在编辑时发送电子邮件,但不会这么快?,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我有一个脚本,可以在提交谷歌表单时创建其他文件。它还为所述新文档设置了一个触发器,以便在创建文档后对文档进行任何编辑时向用户发送电子邮件,例如 ScriptApp.newTrigger("sendEmailOnModification") .forSpreadsheet(SpreadsheetApp.openById(fileId)) .onEdit() .create(); 逻辑是可行的,但是。。。触发器非常敏感。每次有人在文档中击一次键

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

ScriptApp.newTrigger("sendEmailOnModification")
         .forSpreadsheet(SpreadsheetApp.openById(fileId))
         .onEdit()
         .create();
逻辑是可行的,但是。。。触发器非常敏感。每次有人在文档中击一次键,它就会触发。当有人写一段话的时候,反复开火没有多大意义;比如说,在最后一次编辑10分钟后启动会更有意义。(或者别的什么。任何不发垃圾邮件的东西。)

有没有办法修改触发器以减少触发频率(我不想使用基于时间的触发器),或者以编程方式更改Google Sheets的保存频率


作为最后的手段,我想我可以创建一个隐藏的表单来捕获上次修改的时间和一个条件,如果后续修改时间少于X分钟,则不发送电子邮件,但这有点笨重,也不太吸引人。希望我可以完全用谷歌脚本来代替。

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

我不确定如何实现此功能以满足您的需要,但因为您不需要基于时间的触发器,如果您已经在使用
onEdit()
,您应该能够使用
onEdit(e)
e.oldValue
检查更改是否值得发送消息