はじめに
BotkitでSlackのBotを作る手順が、古いAPI仕様のモノしか出てこないので、
備忘も兼ねてまとめておく。
基本的には以下の日本語版(のつもり)
https://github.com/howdyai/botkit/blob/master/docs/provisioning/slack-events-api.md
Slack Appを新規作成
- https://api.slack.com/apps にアクセスして、左上の「新しいアプリを作成する」を押す。
- アプリ名は任意。 ワークスペースはbotを追加したいslackワークスペースを選ぶ。
- アプリを作ると アプリの認証情報 として、クライアントIDとクライアントシークレットが出てくるので、控えておく。
botkitで新しいbotを作る
- https://studio.botkit.ai/ にログイン
- 必要事項を入力するとホスティング先を選ぶ画面が出るので、Glitchを選ぶ。
(この過程で、先に控えた クライアントIDとクライアントシークレットが必要になる) - 別窓でGlicthのサイトに飛ばされるので、アプリが立ち上がるまで待つ (書いてある説明を読んでいるうちに終わる)
- 元の窓に戻ると、 Glicthでデプロイされた旨が表示されている
- 次に進むと oauthのリダイレクトURLとイベントフック用のURLが表示される
slack側を設定
- slackの画面に戻り、 左のメニューから「Oauth & 権限」を選ぶ
- 少し下の方に リダイレクトURL という欄があるので、そこに先ほど表示されたURLを入れる
( URLは https://xxxxxxxx.glitch.me/oauth という形式。 xxxxxはglichでデプロイされたアプリの名前 ) - 左のメニューから ボットユーザ を選び、 ユーザを追加する。
私のボットを常にオンラインで表示する も オンにしておく - 左のメニューから インタラクティブコンポーネント を選ぶ
- リクエストURLの欄にイベントフック用のURLを入れる
( URL は https://xxxxxxxx.glitch.me/slack/receive という形式 ) - 左のメニューから イベントの購読 を選ぶ
- リクエストURLを入れる
( URL は https://xxxxxxxx.glitch.me/slack/receive という形式 ) - 少し下に行って「ボットのイベントに参加する」の欄で以下のイベントを追加
- message.channel
- message.groups
- message.im
- message.mpim
- 「変更を保存する」を押す (ここだけボタンが画面下部にあるので注意)
- 左メニュー一番上「基本情報」に行く
- ワークスペースにアプリをインストール をクリックして、自分のワークスペースにbotを追加する
動作確認
- botを追加したワークスペースにログインし、 botユーザにDMで hello と送る
- 返事が返ってきたら動作確認完了
- botを稼働させたいチャンネルに botユーザをinvite
- @botユーザ hello で同様に返事が来ることを確認
動かない場合の確認
- glitch上でbotが動いているか
- 左上のサングラスの横に [Live] と表示されている
- サングラスをクリックしてリンク先でエラーが出ていない
- webhookイベントが届いているか
- botkit studio の Console 画面で、自分の発言(hello)が表示されている
- されていない場合、Slack側の設定でwebhookのイベントがONになっているか。通知先URLが正しいか。を確認
(自分は保存ボタンの押し忘れで設定が反映されておらず、イベントの購読がOFFのままだった)