glitch
Slack
Botkit

Botkit+Glitchで作るSlack用bot(2018年1月版)

はじめに

BotkitでSlackのBotを作る手順が、古いAPI仕様のモノしか出てこないので、
備忘も兼ねてまとめておく。

基本的には以下の日本語版(のつもり)
https://github.com/howdyai/botkit/blob/master/docs/provisioning/slack-events-api.md

Slack Appを新規作成

  1. https://api.slack.com/apps にアクセスして、左上の「新しいアプリを作成する」を押す。
  2. アプリ名は任意。 ワークスペースはbotを追加したいslackワークスペースを選ぶ。
  3. アプリを作ると アプリの認証情報 として、クライアントIDとクライアントシークレットが出てくるので、控えておく。

botkitで新しいbotを作る

  1. https://studio.botkit.ai/ にログイン
  2. 必要事項を入力するとホスティング先を選ぶ画面が出るので、Glitchを選ぶ。
    (この過程で、先に控えた クライアントIDとクライアントシークレットが必要になる)
  3. 別窓でGlicthのサイトに飛ばされるので、アプリが立ち上がるまで待つ (書いてある説明を読んでいるうちに終わる)
  4. 元の窓に戻ると、 Glicthでデプロイされた旨が表示されている
  5. 次に進むと oauthのリダイレクトURLとイベントフック用のURLが表示される

slack側を設定

  1. slackの画面に戻り、 左のメニューから「Oauth & 権限」を選ぶ
  2. 少し下の方に リダイレクトURL という欄があるので、そこに先ほど表示されたURLを入れる
    ( URLは https://xxxxxxxx.glitch.me/oauth という形式。 xxxxxはglichでデプロイされたアプリの名前 )
  3. 左のメニューから ボットユーザ を選び、 ユーザを追加する。
    私のボットを常にオンラインで表示する も オンにしておく
  4. 左のメニューから インタラクティブコンポーネント を選ぶ
  5. リクエストURLの欄にイベントフック用のURLを入れる
    ( URL は https://xxxxxxxx.glitch.me/slack/receive という形式 )
  6. 左のメニューから イベントの購読 を選ぶ
  7. リクエストURLを入れる 
    ( URL は https://xxxxxxxx.glitch.me/slack/receive という形式 )
  8. 少し下に行って「ボットのイベントに参加する」の欄で以下のイベントを追加
    • message.channel
    • message.groups
    • message.im
    • message.mpim
  9. 「変更を保存する」を押す (ここだけボタンが画面下部にあるので注意)
  10. 左メニュー一番上「基本情報」に行く
  11. ワークスペースにアプリをインストール をクリックして、自分のワークスペースにbotを追加する

動作確認

  1. botを追加したワークスペースにログインし、 botユーザにDMで hello と送る
  2. 返事が返ってきたら動作確認完了
  3. botを稼働させたいチャンネルに botユーザをinvite
  4. @botユーザ hello で同様に返事が来ることを確認

動かない場合の確認

  • glitch上でbotが動いているか
    • 左上のサングラスの横に [Live] と表示されている
    • サングラスをクリックしてリンク先でエラーが出ていない
  • webhookイベントが届いているか
    • botkit studio の Console 画面で、自分の発言(hello)が表示されている
    • されていない場合、Slack側の設定でwebhookのイベントがONになっているか。通知先URLが正しいか。を確認
      (自分は保存ボタンの押し忘れで設定が反映されておらず、イベントの購読がOFFのままだった)