如何阻止Google表单onSubmit触发器运行两次?

我有大约10个Google脚本,可以在提交表单时发送电子邮件。直到最近,它的工作情况都很好,但是突然之间,所有人都开始发送两封电子邮件以提交任何表单。我查看了执行日志,第一次执行和第二次执行之间总是有3秒的时间(每个脚本只需要1.5秒即可运行)。

我尝试使用脚本锁(我在这里找到了一个解决方案),但到目前为止,还无法停止重复的电子邮件。我不确定我是否做对了。

Spreadsheetapp.flush();
     var lock = LockService.getScriptLock();
  try {
    lock.waitLock(500);
     } catch (e) {
        Logger.log('Could not obtain lock after 30 seconds.');
     }


function sendEmails() {

---rest of the code---
ulinker 回答:如何阻止Google表单onSubmit触发器运行两次?

我的经验是,不需要的或我称其为虚假提交的内容往往缺少一些答案。因此,我仔细查看了伪造的提交内容,以确定第一次和之后的伪造提交内容之间是否有任何区别,而且我经常发现,伪造的提交内容始终仅包含时间戳记。因此,正如我在this answer中所说的那样,我使用以下代码将虚假提交排除在影响onSubmitForm函数之外:if(e.values && !e.values[1]){return;}

,

您的问题是由最近报告的一次关于表单提交触发器运行两次的Google错误引起的:https://b.corp.google.com/issues/144110219

本文链接:https://www.f2er.com/3129180.html

大家都在问