google apps script + slack api 【002】slackの呼びかけに応答
【001】では,ひとまずslackに初ポストした.今回は次にslackから呼びかけられて起動して応答するというもの.
使用するのは Outgoing WebHooks という Custom Integration.まずは準備として導入しておく.
Outgoing WebHooks : トリガーとなる言葉に反応して指定のURLにPOSTを行う.
⇒ slack の呼びかけに反応して指定のアプリケーションを起動させる.
1. google apps script を作成.
function doPost(e) { var token = PropertiesService.getScriptProperties().getProperty('SLACK_ACCESS_TOKEN'); var bot_name = "TheTree"; var bot_icon = "http://i.imgur.com/DP2oyoM.jpg"; var app = SlackApp.create(token); var message = "はい、こんにちは" return app.postMessage("#general", message, { username: bot_name, icon_url: bot_icon }); }
内容は前の記事とほとんど変わらん.イベントハンドラのdoPost()
関数を使用する.
2. 作成したやつをウェブアプリケーションとして導入(URLを取得)
ツールバー[公開] > [ウェブアプリケーションとして導入]
でウェブアプリケーションとして導入され,そのURL取得できる.
ウェブアプリケーションとして導入したあとの更新の注意点.
3. Outgoing WebHooks でトリガーとなる言葉,取得したURLを指定.
Channelは及ぶ範囲.Trigger Wordに自分でトリガーとなる言葉入れて,URLは取得したURL入れる.完成.
4.できた!
+α
当然,これをするとslackの発言に応じた応答をしたくなる.slackからくるデータのアクセス方法
画像のようなデータ内容でPOSTとして,slackからの発言は飛んで来るよ,とOutgoing WebHooksに例示されている.
それをdoPost(e)
のe
が受け取ってくれる形.それぞれのアクセスは e.param.user_name
とか.特にtext
っていうやつがslack空飛んできた発言の内容.
要するにe
にすでにデータ入っているのでそれに応じて応答するのもわりと簡単.とても扱いやすくてよい.