LoginSignup
21

More than 5 years have passed since last update.

slack新機能!message buttonを使ってbotkitをレベルアップさせる!

Posted at

概要

2016/06/21にSlackの「What's New」よりSlackの投稿にボタンをつけられる事を知りました。
localのbotkit単体でこちらの機能を試せるのかと思いきや、httpsの対応サーバが必要という事だったので、
httpsサーバを手軽に試すため、Herokuのfreeプランを使ってチャレンジしてみました。

スクリーンショット 2016-07-19 19.17.06.png

手順

サンプルコードを取得する

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を控えます。

スクリーンショット 2016-07-19 19.32.45.png

Herokuのapp設定

Herokuのappの環境変数に先ほど控えた変数「clientId」と「clientSecret」を登録します。

スクリーンショット 2016-07-19 19.35.03.png

Herokuにデプロイ

アプリをデプロイしてWebServerが立ち上がっている事を確認します。
スクリーンショット 2016-07-19 19.38.17.png

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が以下の発言をしてきます。
スクリーンショット 2016-07-19 19.36.45.png

ボタンを試してみる

buttonと発言するとbotがボタン付きの投稿をしてくるので、ボタンを押してみてください。
押したボタンの名前をbotが返答できていれば成功です!

最後に

botkitのconversationもいいですが、buttonが使えたほうがより操作が直感的にできるようになると思います。
herokuもbotkitも初心者で未だ不明な箇所も多々ありますので、ご指摘あればコメントに残してください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21