この記事はロボP Advent Calendar 2018の12日目の記事です.

ロボPではありませんが、今年はインターンなどでかなりGoogle Apps Script(以下GAS)を

使うことが多々あったので、そこで得た知見をご紹介したいと思います。


1. Logger.log動きませんけど...?

おなじみ、メニューの「表示」から「ログ」でログ確認できるLogger.logですが

こんな罠があります。


  • doPost()

  • doGet()

  • 自作トリガー関数

これらの関数内ではLogger.logが動かないのです。

-> console.logを使いましょう。

Google Cloud Platform上のStackDriver Loggingで確認できます。


2. トリガーいつ動くん...?

時間主導型でのトリガーには、月・周・日・時・分・特定日時で動作タイミングを設定できます。

このうち時刻を設定するもので午前1時~2時のような選択肢がありますが、

トリガーが動作されるのはこの範囲内のどこかのタイミングになるので厳密な時刻設定ではありません。

-> 俺は毎週何時何分にこの関数を動かしたいんだ!って人は大人しくコードを書きましょう。

トリガー設定の関数が用意されています。


3. Webブラウザ上でコード書きたくないんだけど...

GASをそのまんまWebブラウザ上でコード書き続けるのは正直しんどいです。

インデントはズレるし、変数ぐらいの最低限箇所にしか色がつかないし...

-> clasp使いましょう。

あなたの好きなエディタで書けます。


4. 版を管理...?

最初見た時、Google翻訳でもかかっているのかな?ってぐらいに無理やり語訳された感が強すぎる。

現状のGASプロジェクトのスナップショットのようなものです。 バージョン管理とは...?

ちなみに以前のバージョンに復元することもできません。

また、バージョン番号は勝手にインクリメントされるだけなので、好きな数字とかは使えないです。

-> claspでローカルに落としてGitHubなどを使おう

claspを使えばGAS上のコードもGit管理できます。


5. ライブラリと版の関係性

版を作成すると、そこで使われている関数をライブラリとして別のGASでインポートして使用することができます。

ここで注意することは、インポートしている版を削除してしまうとインポート先で関数が読み込めなくなり、サーバーエラーで全て動作不能になってしまいます。

僕はこれでスプレッドシート共々作り直したことがあります。

-> ライブラリ管理している版は消さないようにしよう。

ご利用は計画的に.


最後に

また知見が溜まり次第、追記していきます。