簡體   English   中英

谷歌表單中谷歌腳本的每日時間限制

[英]Daily time limitations from Google Scripts in Google Forms

我准備了一個谷歌表單,但我想設置一個時間限制,讓它每天從早上 8 點(它開始接受回復)到下午 5 點(它停止接受回復)上線。 我設法在這里找到了接近我想要的東西https://www.labnol.org/internet/schedule-google-forms/20707/

我不是一個不了解 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_();
}

這個示例腳本怎么樣?

流程:

  1. 為了啟動oc() ,請首先運行initTrigger() 這樣, oc()每天早上 0:00 啟動。 首先請只運行一次。
    • 運行initTrigger()后,您可以在腳本編輯器上確認此觸發器。
  2. oc()在上午 0:00 啟動時,用於啟動openForm()closeForm()現有觸發器將被刪除。
  3. 然后,用於啟動openForm()closeForm()的觸發器被安裝為新的觸發器。 此時, openForm()closeForm()的觸發日期分別是今天的 AM 8:00 和 PM 5:00。

腳本:

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_();
}

有效! 多謝

我需要為一周中的每一天編寫不同的時間表,我想這可以用一個腳本完成,但我只能用 7 個不同的腳本和 7 個觸發器來完成。 關於這個的任何線索?

贊賞!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM