GASで定期実行しているスクリプトのエラー通知をLINEに飛ばすようにしてみた

本投稿は TECOTEC Advent Calendar 2021 の21日目の記事です。

こんにちは。次世代デジタル基盤開発事業部の近藤です。

Google Apps Script(以下GAS)で毎日定期実行しているスクリプト(某暗号資産取引所のAPIを呼んでいる)があるのですが、極稀にエラーが発生してしまいます。

エラー発生時は元々GASからメール通知が来るようになってはいるのですが、即座に気がつくことが難しいです。

そこで、LINEに通知を飛ばしたいと思いました。実際やってみると予想以上に簡単だったので、やり方を紹介したいと思います。

内容

GASからLINEに通知を送る。それだけです。

準備

LINEに通知を送るにはこちらのLINE Notifyを利用します。

  1. サイトにアクセスしたら、ログイン後右上のユーザ名から「マイページ」に移動します f:id:teco_y-kondo:20211210174643p:plain

  2. 下の方にあるアクセストークンの発行(開発者向け)の「トークンを発行する」ボタンを押します。 f:id:teco_y-kondo:20211210174817p:plain

  3. トークンの名称と通知を送りたいトークルームを設定します。自分に対してだけ通知を送信したい場合は、「1:1でLINE Notifyから通知を受け取る」を選択すればOKです。 グループのトークルームを選択しても大丈夫ですが、その場合はそのグループにLINE Notifyも入れておかないと通知は来ません。(当たり前) f:id:teco_y-kondo:20211210175858p:plain

  4. 発行するボタンを押してトークンを発行します。サイトに記載のある通り、トークンはこの場でしか確認することができないため必ずどこかにメモしておきましょう。メモしておかないと後から確認できなくて詰みます。 f:id:teco_y-kondo:20211210180141p:plain

通知を送信

トークンを発行し終えたら、ここから実際に通知用のコードGASに書いていきます。 と言ってもめちゃくちゃシンプルです。

function notify() {
const LINE_TOKEN = 'xxxx' // ここに先ほどメモしたトークンを設定

const msg = 'テストです。'

  let options = {
      method: "post",
      payload: `message=${msg}`,
      headers: { Authorization: "Bearer " + LINE_TOKEN },
  };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

これだけです。

LINE_TOKENに先程メモしたトークンを設定します。

options.payloadのmessage=の文字列の後に、LINEで通知して欲しい文字列を設定します。

このコードを実行すればこのようにLINE Notifyから通知が届きます。(完) f:id:teco_y-kondo:20211210180532j:plain

まとめ

めちゃくちゃ簡単でしたね。自分はエラーが発生したときにこの処理を行うようにして、すぐにエラーに気がつけるようになったので、少し幸せになれました。なにかLINEに通知したいものがあれば是非参考にしてみてください。おしまいです。

ここまでご覧いただきありがとうございました!

www.tecotec.co.jp