概要
2016/06/21にSlackの「What's New」よりSlackの投稿にボタンをつけられる事を知りました。
localのbotkit単体でこちらの機能を試せるのかと思いきや、httpsの対応サーバが必要という事だったので、
httpsサーバを手軽に試すため、Herokuのfreeプランを使ってチャレンジしてみました。
手順
サンプルコードを取得する
botkitのサンプルがあったので拝借して、message_buttonの実装を少しだけ追記しています。
https://github.com/hakamata-rui/slack_message_button.git
※サンプルのProcfileを見るとworkerではなくHerokuにてhttpsのリクエストを受け付ける必要があるためwebで起動する事にしています。
Herokuでapp登録する
Herokuのappの作り方は長くなるので省略します。
Qiitaで記事をあげている方がたくさんいるのでそちらを参考にしてください。
Herokuでapp作成後、settingsからHeroku Domain(${APP_NAME}.herokuapp.com
)を控えてください。
Slackでapp登録する
botkit単体ではmessage_buttonは使えないため、slackのCreateAppからappとして登録する必要があります。
App Name等は適当に決めて、Redirect URI(s)にはHeroku Domainに/oauthを加えたURL(https://${APP_NAME}.herokuapp.com/oauth
)
app登録後、Bot Usersからbotの名前を適当に設定します。
最後に「App credentials」を開き、Client IDとClient Secretを控えます。
Herokuのapp設定
Herokuのappの環境変数に先ほど控えた変数「clientId」と「clientSecret」を登録します。
Herokuにデプロイ
アプリをデプロイしてWebServerが立ち上がっている事を確認します。
Slackのapp設定
「Interactive Messages」のRequestURLにHeroku Domainに/slack/receiveを加えたURL(https://${APP_NAME}.herokuapp.com/slack/receive
)を登録してください。
※HerokuでWebServerが立ち上がっている状態でなければ登録できませんでした。
Slackのappとしてteamに登録
Heroku Domainに/loginを加えたURL(https://${APP_NAME}.herokuapp.com/login
)をブラウザ等で開き、自分のチームにapp登録してください。
問題なく登録できていれば、botが以下の発言をしてきます。
ボタンを試してみる
buttonと発言するとbotがボタン付きの投稿をしてくるので、ボタンを押してみてください。
押したボタンの名前をbotが返答できていれば成功です!
最後に
botkitのconversationもいいですが、buttonが使えたほうがより操作が直感的にできるようになると思います。
herokuもbotkitも初心者で未だ不明な箇所も多々ありますので、ご指摘あればコメントに残してください。