てくてくテック

気ままに開発のメモを書いていこうと思います。主にSwiftかと。

GASからIncoming Webhooksでslackに通知を投げる

はじめに

最近はほとんどの開発でslack使ってますね。 その際に色々なことを自動化してその結果をslackに通知したくなる時があります。
今回は、Google Apps Script(GAS)からslackに Incoming Webhooksを用いて通知を投げるコードについてお話しします。

Incoming Webhooks

Incoming Webhooks are a simple way to post messages from external sources into Slack

Incoming Webhooksより

要するに、Slackに簡単にメッセージを飛ばすために手法です。現状だとjsonを利用した普通のHTTP Requestで実現されています。

設定もとても簡単です。

  1. 次のリンクに自分のチーム名を入れてページを開く
    (https://{チーム名}.slack.com/apps/A0F7XDUAZ-incoming-webhooks)
  2. Add Configurationボタンを押す
  3. 送信先のchannelを指定する(ここと違うchannelにも送れる模様)
  4. Add Incoming WebHooks integrationボタンを押す
  5. Webhook URLをメモっておく

これだけで,基本設定はできています。 動作確認はIncoming WebhooksCURL EXAMPLEで、先ほどメモしたWebhook URLに置換すれば確認取れます。

Google Apps Script

GASの説明はここでは省いて、とりあえず新規作成する方法について書きます。

  1. Google Driveを開く
  2. 左上の新規ボタンをマウスオーバー
  3. その他をマウスオーバー
  4. Google Apps Scriptがあったら選択、なかったら追加から追加して選択

これでGASファイルが生成されます。
なお、スプレッドシートに紐付いたGASを作成したい場合は、スプレッドシートを開いている状態で、ツール>スクリプトエディタを選択するとGASが開かれます。

Slackに通知するテンプレート

Slackに投稿するBotをGASで作るテンプレを利用すると動きます。

GASの実行

  1. 関数を選択から実行したい関数を指定する
  2. 三角の実行ボタンを押す

f:id:k-s-9190118:20161005214730p:plain