GAS(Google Apps Script):トリガーで指定した時刻にスクリプトを実行する

GASのトリガーを使うと、特定の時間帯にスクリプトを自動的に実行できます。

トリガーを設定する方法

スクリプトエディタで、編集 > 現在のプロジェクトのトリガーをクリックするとトリガーの一覧画面が表示されます。

スクリーンショット 2020-06-23 23.34.45

トリガーを追加をクリックし、次のとおりに設定して保存をクリックするとトリガーが追加されます。
【毎日午前8時〜9時に1回実行する場合】
・実行する関数を選択:トリガーで実行したい関数を指定
・実行するデプロイを選択:Head
・イベントのソースを選択:時間主導型
・時間ベースのトリガーのタイプを選択:日付ベースのタイマー
・時刻を選択:午前8時〜9時

スクリーンショット 2020-06-23 23.39.02

スクリーンショット 2020-06-23 23.45.14

また、時間ベースのトリガーのタイプを選択で別のオプションを選択すると、1時間ごとなど異なる間隔で関数を実行できます。

スクリーンショット 2020-06-23 23.50.07

時刻指定でトリガーを設定する方法

毎日8時00分に指定した関数を実行するなど時刻を細かく設定したい場合は、トリガーにScriptAppクラスのnewTriggerメソッドを組み合わせて使います。
例えば、毎朝8時00分に起動する場合、こちらのサンプルコードのようにsetTrigger関数を使って8時00分にmainFunctionを起動するようトリガーを作成します。

function setTrigger() {
 
 let setTime = new Date();  //現在日時を取得(この場合、setTrigger関数が実行された日時)
 setTime.setHours(8);       //8時に設定
 setTime.setMinutes(00);    //0分に設定
 
 //8:00にmainFunctionが実行されるようトリガーを作成
 ScriptApp.newTrigger('mainFunction').timeBased().at(setTime).create();
}

//指定した時刻8:00に実行される関数
function mainFunction() {
 console.log('Good Morning!!!');
}

そして、トリガーの追加で実行する関数にsetTriggerを指定し、午前6時〜7時(mainFunctionを実行する8時00分よりも前の時間帯)を設定します。

スクリーンショット 2020-06-24 0.42.55

午前6時から7時の間にsetTrigger関数が実行されると、トリガーが新規に作成されます。トリガーの編集から確認すると、午前8時00分にmainFunctionを実行するようトリガーが設定されていることが確認できます。

スクリーンショット 2020-06-24 0.56.10

スクリーンショット 2020-06-24 0.56.36


GAS中心に記事を書いています、よろしければサポートお願いします!!