Google apps script 谷歌表单中谷歌脚本的每日时间限制

Google apps script 谷歌表单中谷歌脚本的每日时间限制,google-apps-script,google-forms,Google Apps Script,Google Forms,我已经准备好了一个谷歌表单,但我希望对它设置一个时间限制,以便它每天早上8点(它开始接受回复)到下午5点(它停止接受回复)上线。我设法找到了一些接近我想要的东西 我不是一个没有JS知识的程序员,但对C++(强制大学单元)有一些了解。 我试图通过在线搜索来调整源代码以满足我的愿望。 这是我在谷歌脚本中的脚本 function oc() { ScriptApp.newTrigger('openForm') .timeBased() .everyDays(1) .a

我已经准备好了一个谷歌表单,但我希望对它设置一个时间限制,以便它每天早上8点(它开始接受回复)到下午5点(它停止接受回复)上线。我设法找到了一些接近我想要的东西

我不是一个没有JS知识的程序员,但对C++(强制大学单元)有一些了解。 我试图通过在线搜索来调整源代码以满足我的愿望。 这是我在谷歌脚本中的脚本

function oc() {

  ScriptApp.newTrigger('openForm')
     .timeBased()
     .everyDays(1)
     .atHour(8)
     .create();

  ScriptApp.newTrigger('closeForm')
     .timeBased()
     .everyDays(1)
     .atHour(16)
     .create();
}

function openForm() {
  var form = FormApp.getActiveForm();
  form.setAcceptingResponses(true);
}

function closeForm() {  
  var form = FormApp.getActiveForm();
  form.setAcceptingResponses(false);
  deleteTriggers_();
}

这个示例脚本怎么样

流量:
  • 要启动
    oc()
    ,请首先运行
    initTrigger()
    。这样,
    oc()
    将在每天上午0:00启动。请先只运行一次。
    • 运行
      initTrigger()
      后,可以在脚本编辑器上确认此触发器
  • 当在凌晨0:00启动
    oc()
    时,用于启动
    openForm()
    closeForm()
    的现有触发器将被删除
  • 然后,启动
    openForm()
    closeForm()
    的触发器作为新触发器安装。此时,
    openForm()
    closeForm()
    的触发日期分别为今天上午8:00和下午5:00
  • 脚本:
    这个示例脚本怎么样

    流量:
  • 要启动
    oc()
    ,请首先运行
    initTrigger()
    。这样,
    oc()
    将在每天上午0:00启动。请先只运行一次。
    • 运行
      initTrigger()
      后,可以在脚本编辑器上确认此触发器
  • 当在凌晨0:00启动
    oc()
    时,用于启动
    openForm()
    closeForm()
    的现有触发器将被删除
  • 然后,启动
    openForm()
    closeForm()
    的触发器作为新触发器安装。此时,
    openForm()
    closeForm()
    的触发日期分别为今天上午8:00和下午5:00
  • 脚本:
    谢谢你的回复。我已经相当了解你编码和修补的内容,是的,它回答了我的问题。我已经把它写在脚本上,并按照你的要求触发了。@Divshal Sharma欢迎。也谢谢你。如果您的问题已解决,请按“接受”按钮。其他人也可以确认此解决方案。谢谢你的回复。我已经相当了解你编码和修补的内容,是的,它回答了我的问题。我已经把它写在脚本上,并按照你的要求触发了。@Divshal Sharma欢迎。也谢谢你。如果您的问题已解决,请按“接受”按钮。其他人也可以确认此解决方案。
    function initTrigger(){
      ScriptApp.newTrigger('oc').timeBased().atHour(0).everyDays(1).create();
    }
    
    function oc() {
      ScriptApp.getProjectTriggers().forEach(function(e){
        if(e.getHandlerFunction() == "openForm" || e.getHandlerFunction() == "closeForm") {
          ScriptApp.deleteTrigger(e)
        }
      });
    
      var time = new Date()
      time.setHours(8);
      time.setMinutes(0);
      ScriptApp.newTrigger("openForm").timeBased().at(time).create();
    
      time.setHours(17);
      time.setMinutes(0);
      ScriptApp.newTrigger("closeForm").timeBased().at(time).create();
    }
    
    function openForm() {
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(true);
    }
    
    function closeForm() {  
      var form = FormApp.getActiveForm();
      form.setAcceptingResponses(false);
      // deleteTriggers_();
    }