Help us understand the problem. What is going on with this article?

【GoogleAppsScript】通知時間を詳細に指定する

More than 1 year has passed since last update.

Google Apps Script の実行トリガーとして、時間指定を行なうことができます。
時間指定は、「1時間ごと」や「5時~6時の間」等の指定が行なえます。
しかし、「毎日12時05分」といった通知時間の指定を設定することができせん。
このような指定をしたい場合は、コード上でトリガーの指定をする必要があります。

毎日11時59分に処理を実行する

以下の作業が必要になります。

  • 11時59分に処理( main )を実行するようなトリガーを設定する関数( setTriger )をコード上で作成する
  • mainの処理の中で、setTrigerにて設定したトリガーを削除するコードを書く
  • デフォルトのトリガー設定にて、「日タイマー:10時~11時」でsetTrigerが動くようにする

上記のようにすることで、毎日10時~11時の間に、setTrigerが実行され、setTrigerによってその日の11時59分にmainが実行されるよう設定され、11時59分にmainが実行されます。
mainが実行されると、11時59分に実施するよう設定したトリガーが削除され、そのほかの処理も実行されます。
(トリガーは削除しないと残ってしまいます)

以下、実際のコードです。

// 11時59分にトリガーを設定する関数
function setTrigger() {
  var day = new Date();
  day.setHours(11);
  day.setMinutes(59);
  ScriptApp.newTrigger("main").timeBased().at(day).create();
}

// トリガーを除去する関数
function removeTrigger() {
  var triggers = ScriptApp.getProjectTriggers();
  for(var i=0; i < triggers.length; i++) {
    if (triggers[i].getHandlerFunction() == "main") {
      ScriptApp.deleteTrigger(triggers[i]);
    }
  }
}

// 実際に動かしたい処理
function main() {
  removeTrigger(); //トリガーを除去する
  //実行したい処理
}

以下、Google Apps Script のデフォルトのトリガー設定です。
trigger.PNG

トリガーは、Google Apps Script 画面上部の時計マークから設定可能です。
tokei.PNG

上記の例では、毎日特定の時間に処理を実行させましたが、他にも、「〇日おきに実行」や「〇月〇日〇時〇分に実行」など、さまざまなパターンで設定できます。

参考

chihiro
jrits
信頼と魅力のある先進のITをもとに、お客様のワークスタイル・イノベーションの実現を目指します。
http://www.jrits.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした