脚本在Google表单提交触发器上运行两次

Wir*_*hod 5 google-apps-script

我正在使用sendFormByEmail函数创建Google表单和google应用脚本,我也在该函数的表单提交触发器上进行了设置,我的问题是此脚本在表单提交上运行了两次,而我收到了两封电子邮件,我只希望收到一封电子邮件表单提交。我的脚本代码如下。

var no_repeat=0;
function sendFormByEmail(e){

  var email = "test@XXXXDXtest.com"; 

  var s = SpreadsheetApp.getActiveSheet();
  var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
  var message = "";
  var subject = "Success Assessment";
  var total=0;
  var roll_on=0;

  message+="test massage";
  message+="<table cellpadding='3' style='color: #0F1F4C;'>";
  for(var i in headers) { 
    if(headers[i]=='Please enter your email address to receive your results'){
      email=e.namedValues[headers[i]].toString();
    }
    if(headers[i]!='Please enter your email address to receive your results'){
      if(headers[i]!='Timestamp'){
        if(e.namedValues[headers[i]]!=''){      
          total = parseInt(e.namedValues[headers[i]])+parseInt(total);
        }

        message +="<tr >";
        message += '<td >'+headers[i]+'</td><td >'+e.namedValues[headers[i]].toString()+ "</td>";
        message +="</tr>";
        roll_on++;
      }
    }
  }  
  message +="<tr >";
  message += "<td ><b> YOUR SCORE </b></td><td ><b>"+total+"</b></td>";
  message+="</tr></table>";

  // Send the email

   if(email!='' && email!=null){
     if(no_repeat==0){ 
       MailApp.sendEmail(email, subject,"",{htmlBody: message});
     }
    no_repeat++; 
   }
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*wal 3

这是 Google 端的一个已知问题,他们正在努力修复:

我们的工程团队正在解决这个问题,但我们没有任何关于何时修复该问题的估计。我建议应用更新 #22 中所示的 LockService 逻辑,这应该可以解决该问题。