我喜歡Google表單,我可以和他們一起玩幾個小時。我花了好幾天的時間試圖解決這個問題,尋找答案。這是在我的頭上。我看到過類似的問題,但似乎沒有任何幫助我找到答案。我們在一家咖啡廳工作,並在Google表單上創建了預訂表單。這是很容易的部分。咖啡廳只能接受上午10:30前的預購。我希望表格在上午7點開放,每天上午10點30分關閉,以阻止人們在咖啡館無法處理他們的訂單時預先訂購。我使用http://labnol.org/?p=20707的非常有用的教程來啓動我,我已經添加並將其搞砸了,並設法返回到目前的外觀。它不工作,我無法繞過它。有一次,我設法關閉它,但是我無法重新啓用它!我發現它非常令人沮喪,任何解決這個問題的幫助都很棒。對我來說,這似乎很簡單,因爲它只需要在每天的特定時間打開和關閉。我不知道!請幫我一個人嗎?每天自動打開和關閉的Google表單
FORM_OPEN_DATE = "7:00";
FORM_CLOSE_DATE = "10:30";
RESPONSE_COUNT = "";
/* Initialize the form, setup time based triggers */
function Initialize() {
deleteTriggers_();
if ((FORM_OPEN_DATE !== "7:00") &&
((new Date()).getTime("7:00") < parseDate_(FORM_OPEN_DATE).getTime ("7:00"))) {
closeForm("10:30");
ScriptApp.newTrigger("openForm")
.timeBased("7:00")
.at(parseDate_(FORM_OPEN_DATE))
.create(); }
if (FORM_CLOSE_DATE !== "10:30") {
ScriptApp.newTrigger("closeForm")
.timeBased("10:30")
.at(parseDate_(FORM_CLOSE_DATE))
.create(); }
if (RESPONSE_COUNT !== "") {
ScriptApp.newTrigger("checkLimit")
.forForm(FormApp.getActiveForm())
.onFormSubmit()
.create(); } }
/* Delete all existing Script Triggers */
function deleteTriggers_() {
var triggers = ScriptApp.getProjectTriggers();
for (var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
}
/* Allow Google Form to Accept Responses */
function openForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
informUser_("Your Google Form is now accepting responses");
}
/* Close the Google Form, Stop Accepting Reponses */
function closeForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
deleteTriggers_();
informUser_("Your Google Form is no longer accepting responses");
}
/* If Total # of Form Responses >= Limit, Close Form */
function checkLimit() {
if (FormApp.getActiveForm().getResponses().length >= RESPONSE_COUNT) {
closeForm();
}
}
/* Parse the Date for creating Time-Based Triggers */
function parseDate_(d) {
return new Date(d.substr(0,4), d.substr(5,2)-1,
d.substr(8,2), d.substr(11,2), d.substr(14,2));
}
如果精度很關鍵,基於時間的觸發器將不夠用,因爲觸發器不能保證在指定的確切時間運行。 觸發器通常定義觸發後的時間,到時候必須落在每小時一班,所以10:30是不是一個觸發的有效時間爲15分鐘之內。爲了獲得所需的精確度,您需要使用外部服務,該服務會在指定時間觸發通知,並讓您的應用程序通過將其部署爲Web應用程序並將其網址用作Webhook來接收這些通知。複雜的東西。 –