表单上的Apps-Script基于时间的触发器

时间:2016-12-12 20:20:10

标签: google-apps-script

我在表单和电子表格上有相同的脚本。当我从表单执行脚本时,它100%工作,但我可以获得基于时间的安装触发器,我需要在上午8:29切换表单,并在上午8:59停止接受响应。

当我做一个" On Form Submit"从电子表格中,我在表单脚本上使用的提交功能不再有效。

我需要帮助在FORM脚本中获取时间触发器...或者帮助理解我需要在Sheet端执行的操作才能使函数正常工作。

以下是在表单上工作的代码,但不在电子表格中...我得到" Form Submitted"就是这样,当表单触发表单提交触发器时,不再有Logger.Log条目。数据发送"表单响应1"同一个电子表格中的工作表。

function onFormSubmit(e) {
      Logger = BetterLog.useSpreadsheet('XXXXXXXXXX');
      Logger.log('Form Submitted');
        var formResponse = e.response;
        var itemResponses = formResponse.getItemResponses();
        var student=[];
        var studentchoice = [];
      for (var i=0; i<itemResponses.length; i++) {
        if(itemResponses[i].getItem().getTitle()=="Pick your class"){
             //We will have the teachers name...open the right sheet
             var teacher = itemResponses[i].getResponse();
             Logger.log(teacher);
             classroom(teacher); //stores teacher in cache to use in another function 
        }else{
            student.push(itemResponses[i].getItem().getTitle());
            studentchoice.push(itemResponses[i].getResponse());
            Logger.log(itemResponses[i].getItem().getTitle());
        }
      }
        if(student.length >= 1 && studentchoice.length >= 1){
          enterOrders(classroom(),student,studentchoice);
        }

         var formattedDate = Utilities.formatDate(new Date(), "EST", "h:mm a");
          Logger.log(formattedDate);

}

1 个答案:

答案 0 :(得分:0)

部分答案

请注意,时间驱动的脚本可能会“略微随机化”。来自官方文档

  

时间可能会稍微随机化 - 例如,如果您创建一个周期性的上午9点触发器,Apps脚本会在上午9点到上午10点之间选择一个时间,然后保持每天的时间保持一致,以便在此之前24小时过去触发再次发射。

据我了解,您的脚本可以在结束时间之后开始

参考

https://developers.google.com/apps-script/guides/triggers/installable