Googleフォームが大好きです。私は答えを探して、この1つを解決しようと努力しました。それは私の頭の上にあります。私は似たような質問を見たことがありますが、私は答えに手伝ってくれたようでした。私は働いているカフェを持っていて、Googleフォームで予約注文フォームを作成しました。それは簡単な部分でした。カフェでは、午前10時半までの予約注文のみ受け付けています。毎日午前7時から午前10時半までにフォームを開き、カフェが注文を処理できない場合に事前予約を停止します。私は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分以内に発火し、その時は時間の間隔に入らなければなりません。必要な精度を得るには、割り当てられた時間に通知をオフに解雇されますと、あなたのアプリがウェブアプリとしてそれを展開し、ウェブフックとしてそのURLを使用することにより、これらの通知を受信している外部サービスを使用する必要があります。複雑なもの。 –