独自のDM警察サーバを立ち上げてSlackと連携させたい人のために
背景/はじめに
DM警察はDM監視のために、パトロールを希望した人(not チーム)のDMをサーバで受け取ります。メッセージの内容はアプリレイヤではログに残さないようにしていますが、データとしてはサーバにダイレクトメッセージの内容が送信されているので心配...
という方のために、独自の環境をHerokuに構築する手順を説明します。
必要なもの
- Slackのアカウント
- Herokuアカウント
- 本手順において、バックエンドのアプリケーションはheroku buttonを用います。独自にサーバを立てたりしたい場合はこの限りではありません
大きな流れ
DM警察を独自の環境で動かすための大まかな手順は以下の通りです
- 新しくSlackアプリを作成して、Credentialを確認する
- Herokuボタンでサービスを立ち上げる
- SlackAppの細かい設定をする
- 使い始める(動作確認)
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ボタンを押してコマンドを作成
-
command :
-
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
- 例 :
-
-
RedirectURLsを追加する - Slackアプリインストール用
以上で設定は完了(のはず)です。
Botのアイコンの設定などは、Credentialを確認した画面の下の方に"Display Information"というところがあるので、そちらで
使い始める(動作確認)
Herokuに立てたサーバにアクセスしてLPを表示します。あとはLPの指示に従ってもいけそうです。ダメな場合は @rocky_manobi までどうぞ。
_