はじめまして,この春NUTMEGに加入した飯田です. チャットツールとして使用しているSlackを便利にしよう!!ということで,SlackBotの開発をM2の後方腕組大臣から受け継ぎました!! 今回は,SlackBotで送信したメッセージをスプレッドシートに記録する機能を作りました.
要望
Botが入っているチャンネル上でメッセージが送信されたら,SlackがBotのサーバーにリクエストを送信する.
Botのサーバーは処理を行い,Slackに結果を送信(チャンネルにメッセージを送信とか)する.
(ngrokをローカルにインストールせず,Dockerを使用する方法でもできそうなので,そっちのほうが簡単かも)
docker run -it -e NGROK_AUTHTOKEN=<token> ngrok/ngrok http 3000
Slackはイベントに対応するHTTP POSTリクエストを”Request URL”エンドポイントに送信する. そのため,ワークスペースに常駐しているSlackBotがローカルPCのポートにアクセスする必要がある.
ローカルPCのネットワークを外部に公開し,アクセスできるようにするためにngrokを使用する.
参考 : Slack BotをBoltで開発した
git clone [email protected]:NUTFes/nutmeg-slack.git
# 開発環境
DB_NAME="***************"
DB_USER="***"
DB_PASSWORD="*******"
SLACK_BOT_TOKEN=*******************************************
SLACK_SIGNING_SECRET=*****************
DB_NAME=*********
DB_USER=***
DB_PASSWORD=****
DB_PORT=27017
DB_HOST=mongo
SPREADSHEET_KEY=******************
VITE_API_URL=http://localhost:1323
VITE_KEYCLOAK_URL=********
VITE_KEYCLOAK_REALM=NUTFES
VITE_KEYCLOAK_CLIENT_ID=slack-auth
⚡Bolt app is runnning!
と表示されると,Slack Botサーバーが起動している.
(注意 : インターネット上に公開しているので,作業終了時には閉じるようにしたほうがいい)
Session Status
が online
であれば,接続できている.
Forwarding
の https://035....ngrok-free.app
をコピーする.
Slack appの設定ページの Event Subscriptions
の Request URL
の Change
を押して, コピーしたURL + /slack/event
を入力する. 入力した後,緑色の文字で Verified
と表示されると,Slackからngrokに通信できている.
準備完了!!
これでSlack bot開発ができるようになります!!
Slack Botで技大祭を円滑にというビジョンを持って,趣味程度に取り組んでいこうと思います.