LoginSignup
4
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-01-28

はじめに

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のままだった)
4
6
0

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
4
6