以前書いたこの記事では
毎日特定の日時ちょうどに実行するトリガーを作る
毎日繰り返すトリガーを設定しました
今回は繰り返さない一度きりのトリガーをコードで書いてみます
コードを使わずに画面でぽちぽちやる方法はこちらに書きました
コード.gs
function run(){ var date = '2018/12/30'; var hour = 15; var min = 11; setTrigger(date, hour, min) } function setTrigger(date, hour, min) { var date = new Date(date); date.setHours(hour); date.setMinutes(min); var trigger = ScriptApp.newTrigger('send_mail') .timeBased() .at(date) .create(); } function send_mail(){ var mail_address = Session.getActiveUser().getEmail(); MailApp.sendEmail(mail_address, "実行したスクリプトID", ScriptApp.getScriptId()); } |
意訳この機能がやること 実行したい日付を決めて 時間を決めて 分を決めて setTriggerに渡す この機能がやること(日付、時間、分を受け取って) new Dateで日付をJSで扱える形にして 時間を設定して 分を設定して 'send_mail'の新規トリガーを作成して 時間ベースで 設定した日時で トリガーを作成する この機能がやること アクティブユーザのemailを取得して email, 件名, 本文を設定してメールを送信する |
試してみる
run()を実行します
編集 > 現在のプロジェクトのトリガーを開きます
このようなトリガーが登録されています
右端の鉛筆ボタンから編集画面を開くと
指定した日時が設定されています
指定日時になるとこのようなメールが飛んできます
その分(15:11〜15:12)の60秒の間のどこかで実行されるようです
関連記事
参考
Class ClockTriggerBuilder
https://developers.google.com/apps-script/reference/script/clock-trigger-builder