Google Apps Script をトリガーから関数に引数がある場合、あるオブジェクトが渡される
移転しました。
最近、KPIをDBやらGoogle Analytics などから値を引っ張ってきて、Google Spreadsheetに値を入れるというお仕事をしている一環で、よく Google Apps Script のトリガーを触ります。
そのトリガーから起動される関数の引数に渡される値が、手動起動の場合と トリガー起動の場合で異なってややはまったのでその挙動の違いをブログに残しておきます。
手動起動
以下のようなPGを書いて、▶️ を押して実行すると
引数は undefined ということがわかります。まぁ何も引数指定していないので当たり前ですね
自動起動
ただ、以下のようなトリガーを設定して実行すると
以下のようなオブジェクトが入っていることがわかります。
この不思議なオブジェクトは
どうも Time-driven events というやつが入っているようで、トリガー実行時に勝手に渡されるようです。
ちなみにトリガー実施日時は以下のようにとれるようです。もっと良い取り方ありそうな気もしますが、、、
targetDay = new Date(event['year'] + '/' + event['month'] + '/' + event['day-of-month']);
このような挙動の違いを把握して、トリガー実行する必要があるので気をつけてトリガー実行しましょう。