select_arrow

独自のDM警察サーバを立ち上げてSlackと連携させたい人のために

rocky
385
0
0

独自のDM警察サーバを立ち上げてSlackと連携させたい人のために

Published at November 28, 2019 7:43 p.m.
Edited at December 7, 2019 9:56 a.m.

背景/はじめに

DM警察はDM監視のために、パトロールを希望した人(not チーム)のDMをサーバで受け取ります。メッセージの内容はアプリレイヤではログに残さないようにしていますが、データとしてはサーバにダイレクトメッセージの内容が送信されているので心配...
という方のために、独自の環境をHerokuに構築する手順を説明します。

必要なもの

  • Slackのアカウント
  • Herokuアカウント
    • 本手順において、バックエンドのアプリケーションはheroku buttonを用います。独自にサーバを立てたりしたい場合はこの限りではありません

大きな流れ

DM警察を独自の環境で動かすための大まかな手順は以下の通りです

  1. 新しくSlackアプリを作成して、Credentialを確認する
  2. Herokuボタンでサービスを立ち上げる
  3. SlackAppの細かい設定をする
  4. 使い始める(動作確認)

Get Started !

それではこれからDM警察の独自環境を構築していきます。

1. 新しくSlackアプリを作成して、Credentialを確認する

Slackアプリの新規作成

https://api.slack.com/apps を開いて、Create New Appボタンを押すと、Slackアプリの新規作成フォームが表示されます。名前と開発用ワークスペースを指定して、Createボタンをクリックしましょう。開発用ワークスペースにはどれを指定しても構いません(開発用ワークスペース特有の機能は利用しないため)

Credentialの確認

Slackアプリを作成したら、以下の3項目を確認してください。次のステップで利用します。

  • Client ID
  • Client Secret
  • Verification Token(時期にSigning Secret移行したい)

注意 : これらの情報は流出したら危ないので、公開しないようにしてください。

Herokuボタンでサービスを立ち上げる

DM警察のリポジトリ にアクセスし、READMEに設置してあるHerokuボタンをクリックします。

以下の情報を入力します(スクショ参照)

項目 入力内容
App name 任意のアプリ名称 (ex: 'my-dm-keisatsu')
App owner サーバを作成するherokuアカウントを選択
Choose a region USで良いと思います
---- ----
HOST_URL https://<↑で入力したApp name>.herokuapp.com (ex: https://my-dm-keisatsu.herokuapp.com)
SLACK_APP_CLIENT_ID 先ほど取得したClient ID
SLACK_APP_CLIENT 先ほど取得したClient Secret
SLACK_APP_VERIFICATION_TOKEN 先ほど取得したVerification Token

入力が完了したら「 Deploy app 」をクリックします。
しばらく待つと下記のような表示がなされるので、「View」ボタンをクリックします。ランディングページっぽいものが表示されたら成功です。

SlackAppの細かい設定をする

再びSlackアプリ作成画面に戻り、細かい設定を施します。少し項目が多いです。

設定する項目一覧

設定する項目は以下の通りです。慣れて居る方は以下のリストから一気に設定してしまいましょう。

  • Incoming Webhooks
    • 設定をONにする
  • Interactive Components
    • 設定をONにする
    • RequestURLに <HOST_URL>/slackEvents/buttonActions と入力
      • 例 : https://keisatsu-dm2.herokuapp.com/slackEvents/buttonActions
    • Save Changesで反映させる
  • Bot User
    • Add Bot Userをクリックする
    • DisplayName も Default usernameもなんでもお好きなものを入れて、Saveボタンで作成
  • Event Subscriptions
    • ONにします
    • Request URL に <HOST_URL>/slackEvents と入力
      • 入力と同時にURLの検証リクエスト(Challenge request)が飛びます。失敗した場合はテキストボックスの右端にある「Retry」ボタンを押すと手動で検証リクエストを再発行できます
    • Subscribe to bot events 設定を追加する
      • app_mention を追加
    • Subscribe to workspace events 設定を追加する
      • message.im を追加
      • message.mpim を追加
  • Slush Commands
    • Create New Commandをクリックする
    • フォームを埋める
      • command : /dm-keisatsu
      • RequestURL : <HOST_URL>/slackEvents/slush
        • 例 : https://keisatsu-dm2.herokuapp.com/slackEvents/slush
      • short Description : re activate Patrol などなど...
        • なんでも良いです(10分見逃しモードに入ったDM警察を即座にパトロールモードに変更します という動きをするコマンドです)
      • Saveボタンを押してコマンドを作成
  • Oauth & Permissions
    • RedirectURLsを追加する - Slackアプリインストール用
      • <HOST_URL>/auth/slack/callback
        • 例 : https://keisatsu-dm2.herokuapp.com/auth/slack/callback
    • RedirectURLsを追加する - 個人のパトロール依頼用
      • <HOST_URL>/auth/slackPersonal/callback
        • 例 : https://keisatsu-dm2.herokuapp.com/auth/slackPersonal/callback

以上で設定は完了(のはず)です。

Botのアイコンの設定などは、Credentialを確認した画面の下の方に"Display Information"というところがあるので、そちらで

使い始める(動作確認)

Herokuに立てたサーバにアクセスしてLPを表示します。あとはLPの指示に従ってもいけそうです。ダメな場合は @rocky_manobi までどうぞ。
_