- 指定の slack チャンネルを別のチャンネルに転送してくれる SlackApp
- git clone
- slack api から slackApp を作る
- 以下のスコープを OAuth & Permissions より選択
- bot
- channels:history
- channels:read
- chat:write
- files:read
- im:history
- incoming-webhook
- users.profile:read
- users:read
- users:read:email
- eam:read
- user
- chat:write
- links:read
- links:write
- files:write
- bot
$cp .env.example .env
- .env 項目
SLACK_WORKSPACE
に slack のワークスペース名CHANNEL_NAME
に転送先の slack チャンネル名PORT
にリスニングしたい番号(入れなければデフォルトでは 3000)- Basic information
Signing Secret
をSLACK_SIGNING_SECRET
- OAuth & Permission
OAuth Access Token
をSLACK_OAUTH_TOKEN
Bot User OAuth Access Token
をSLACK_SIGNING_SECRET
- .env 項目
- ローカルで以下を実施
$ yarn
|$ npm i
ngrok
を Homebrew でインストール(入ってない方のみ)$ ngrok http ${n}
でポート番号指定して ngrok を立ち上げる- CLI に出てきた URL を slackApp の InteractiveComponents に貼り付け
- slackApp で以下を設定
- Interactive Components
- RequestURL に ngrok の URL を貼り付け
- Event Subscriptions
- RequestURL に
${ngrokのURL}/slack/events
を貼り付け - Subscribe to bot events に 以下を選択し追加
- message.channels
- message.im
- RequestURL に
- Interactive Components
ngrok
はセッションが切れたら都度再起動し slackApp の RequestURL を新規 URL で更新
任意の位置にブレークポイントを設定後、デバッガからAttach to Bolt
を実行。
$npm run dev:watch
で本アプリをデバッグ実行。
VSCode で Bolt for TypeScript をホットリロード+デバッグ実行させてみよう
- heroku の pipeline を使用