布団の中にいたい

Elasticsearchいじったり、Androidアプリ書いたり。最近は数学の勉強が楽しくなってきました。

Google SpreadSheetからGASでSlackに定期的に投稿する

ちょっとしたことを勉強している時に、単語とかすぐ忘れるので単語帳代わりにSpreadSheetに書いてたまに見たりしてるのですが、それでも忘れるのでGASでslackに定期的に投稿するようにしました。

やったことは以下。

  1. slackのアプリ登録
  2. GASでslackに投稿するようにする
  3. トリガーの登録

slackのアプリ登録

他のアプリ連携でもそうですが、Slackに投稿するためのアプリケーションを作成します。

Slack API: Applications | Slack

Create NewAppからアプリケーションを作成して、Bot Userに追加します。

GASでslackに投稿するようにする

GASからslackに投稿するためのライブラリみたいなのは多いと思いますが、やりたいことは定期的に投稿するだけなので、incoming webhookを使ってpostリクエストを投げるだけにします。

slackで作成したアプリケーションの画面でFeatures > Incoming Webhooksに行って、webhookを使えるようにします。 f:id:asahima_194h:20180716015641p:plain

webhookを使えるようにすると、Workspaceに追加できるようになるので追加します。追加すると、webhookのURLが表示されるので、そちらにpostリクエストを送ればslackに投稿できるようになります。

GASからhttpリクエストを送るためには、UrlFetchAppのfetchを使えばいいです。

Class UrlFetchApp  |  Apps Script  |  Google Developers

トリガーの登録

あとは定期的に実行するために、トリガーに登録します。

編集 > 現状のプロジェクトのトリガーを選択して、トリガーを追加します。分単位・時間単位などで指定できるので大変便利です。

f:id:asahima_194h:20180716020221p:plain

まとめ

さっくりGASを使って、slackに定期的に投稿できるようにしました。GAS自体はjavascriptとほとんど同じでかつ、googleのアプリケーションに接続するライブラリが内包されていてすぐに呼べるので実際ほとんど処理を書く必要がなくて大変楽です。ただ、ブラウザでコード書くのは大変なので、githubにpushしたら反映されるようにしたいなーと思ったので、次回はそのへんをやりましょうかね。