本番環境設定
の項目を参照のこと
本番と同じアプリを使いまわしても特に不都合はない
- SLACK_APP_TOKEN:
本番環境設定
のサーバー側
を参照のこと - CLIENT_ID: 同上
- CLIENT_SECRET: 同上
- SERVER_BASE_URL: 同上。デフォルトなら
http://localhost:3100
使っておけばいい
* REDIS_URL は未設定でも動く
Slack App の Redirect URL が https しか受け付けないためにローカルマシン上で https のリクエストを受けられるようにする必要がある
そのため、create-react-app の HTTPS 利用の機能を使う
これによって、前段に https のプロキシサーバーを立て、フロントエンドとサーバーへのリクエストを全てプロキシで受けて処理するような形にする
cra が提供してくれるやつをそのまま使うだけの方法
- Slack App 設定
OAuth & Permissions
>Redirect URLs
に以下の値を追加https://localhost:3000/api/slack/oauth_redirect
この辺が参考になる
有効な証明書を使うと余計な警告が出ないのでおすすめ
- 証明書を用意して cert,key ファイルを用意する
- 有効な証明書を用意したい場合にのみ必要
- Slack App 設定
- SSL 証明書を発行した URL を元に Redirect URLs に値を追加
[署名されたURL]/api/slack/oauth_redirect
- 環境変数設定
- サーバー
- SERVER_BASE_URL:
[署名されたURL]:3000
を設定
- SERVER_BASE_URL:
- フロント
- HOST: 署名したドメイン
- SSL_CRT_FILE: cert ファイル
- SSL_KEY_FILE: key ファイル
- サーバー
docker/
でdocker-compose up
server/
でyarn dev
front/
でyarn install
yarn start
$ cd .circleci
$ ./build_image
- SlackApp を作成する
Slack App
>Basic Information
内のApp Level Token
を設定する。authorizations:read
,connections:write
の権限が必要。token は後ほど環境変数として設定するので控えておくEvent Subscriptions
-
Enable Events
を ON にする Subscribe to events on behalf of users
で以下の項目を追加するmessage.channels
,reaction:added
,reaction:removed
-
Socket Mode
>Enable Socket Mode
を ON にするOAuth & Permissions
>Redirect URLs
にサーバーの URL を以下のように設定するhttps://[サーバーのドメイン]/api/slack/oauth_redirect
- 最後に Slack App のワークスペースへのインストールを実施
- SLACK_APP_TOKEN: 前項で控えた
App Level Token
を設定する - CLIENT_ID:
Slack App
>App Credentials
内の Client ID - CLIENT_SECRET: 同 Client Secret
- SERVER_BASE_URL: サーバーの URL。OAuth フローでのリダイレクト先設定などに利用
- REDIS_URL: セッション情報保存用の redis の connection string
- heroku なら redis を設定した時点で自動で設定される
- REACT_APP_BASE_URL: ホストされる URL。heroku を利用する場合、ビルドも heroku で行うため heroku 上でサーバーの環境変数として設定してやる必要があるので注意
heroku なら git push heroku master
でデプロイする設定してあれば push するだけで OK のはず