毎日自動で Slack に天気予報を投稿するためのスクリプト


Slack に 毎日自動で天気予報を投稿するスクリプトを書きました。 Google Apps Script を使いました。 Google Apps Script なので、 祝日または休日だったら投稿しないという分岐もできます。 (参考: 営業日だけ処理を実行したい場合)

方針

  • 天気予報の取得は Open Weather Map を使用する。
  • Script は CoffeeScript を使用して記述する。
  • Slack へは、 Incoming WebHooks を利用して投稿する。
  • Google Apps Script を使って自動で定期的に実行します。

準備

Slack で Incoming Webhooks の URL を取得しておきます。

コード

Open Weather Map へのリクエストで APIキーが必要になりました。 下のコードは古いので適宜変更してください。

まず 次の CoffeeScript を用意します。 昔作った別のコードを改変したものです。

コピーして使う場合は、 Slack の URL を変更してください。

CoffeeScript なので、 だいたい JavaScript として動きますが、 UrlFetchApp, Utilities は Google Apps で用意されたものを使っています。

いちいちオブジェクトを作らずに 直接 JSON を処理するようにしていれば、もっと短いコードになると思います。

CoffeScript ができたら、 コンパイルして JavaScript に変換します。 続いて、出力された JavaScript を Google Apps Script に次のようにコピーします。

生成された JavaScript を execute 関数 の中に入れます。 このようにしてコードを作った後で、最初に実行する関数を execute に設定します。 定期的に実行するには メニューのリソースからトリガ作成へと進みます。 そこで、いつ送るかを設定します。

今回は Slack への投稿 でしたが、 メール通知もできます。 メール通知の例は 定期的にメールを自動で送る方法 に記載しています。 営業日のみ処理を実行したい場合は 営業日だけ処理を実行したい場合 にサンプルを記載しておりますのでそちらもご参考ください。