slack Bolt ローカル開発環境
slack cliの時代のようですがそれを知らずににドッカーでローカル環境構築してしまいました..
slack Bolt ローカル開発環境
ソースコードはこちらをcloneしてください。
https://github.com/SphereStacking/slack-app-template
初期セットアップ
コンテナのbuildとmoduleのインストール
docker-compose build
docker-compose run app npm init
docker-compose run app npm install @slack/bolt
envの作成
- .env.exampleをコピーして.envを作成
ngrok.ymlの作成
- ngrok.yml.exampleをコピーしてngrok.ymlを作成
Slack Appのセットアップ
- アプリの作成
- https://api.slack.com/apps
- Create New App を押下
- From scratch を押下
- App Nameの記入
- Pick a workspace to develop your app in: でセットアップ先のワークスペースを選択
- 画面下部のSAVEボタンを押下し保存
- Slack Appの情報を控える
- Basic Information->App Credentialsに移動
- Client Secretを控える
- Signing Secretを控える。
- Slack Appの認証情報を控える
- OAuth & Permissions
- Bot User OAuth Tokenを控える
- Slack Appのが操作可能な範囲を設定
- OAuth & Permissions->Scopes
- Add an OAuth Scope ボタンを押下して適宜追加
- リポジトリのセットアップ
- 控えた値をenvに書き込む
- 2-1 SLACK_BOT_TOKEN
- 2-3 SLACK_SIGNING_SECRET
- 5-3 NGROK_AUTH_TOKEN
- 控えた値をenvに書き込む
ngrokのセットアップ
- ngrokのAuthtokenを取得
- ngrokにアクセス
- アカウントがない場合は作成
- Your Authtokenを控える
- アクセス用のURLを固定する。
- https://dashboard.ngrok.com/cloud-edge/domains
- Create Domainを押下
- Start a Tunnel?
- セレクトボックスから[Start a tunnel from a config file]を選択
- 表示されたymlファイルからhostname部分を控える。
- リポジトリのセットアップ
- 控えた値をngrok.ymlに書き込む
一度起動
$ docker-compose up
Slack Appのコマンド設定
- ngrokのローカル環境ステータス画面をに移動
- http://localhost:4040/status
- Request URLを確認し控える。
- ngrokのセットアップの2-5の値と違っていたら何か間違ってるかも
- コマンド設定
- https://api.slack.com/apps/{your-app}/slash-commands
- Create New Command
- Command: /kiminikimeta
- Request URL: 1-2で控えたurl + /slack/events
- 残りの必要項目は適宜埋める。
- Saveを押下
Slackのチャンネルにてコマンドの実行
- チャンネルに作成したappをし追加
- Slack Appのコマンド設定の2-2-1で設定したコマンドをチャット欄に記述し送信
- 予定通り返信が来たら完了