分報チャネルを見て回る手間を減らすためのSlackボットアプリケーションです。
各自の分報に発言があったとき、その発言を特定のフィードとなるチャネルにシェアします。
- Your Appsの「Create New App」ボタンをクリック
- 「Create an app」ダイアログが開くので、「From scratch」を選ぶ。
- 「Name app & choose workspace」ダイアログが開くので、次のフィールドを埋める。
- 「App Name」: 任意の名前。例: 分報フィード
- 「Pick a workspace to develop your app in:」: あなたのワークスペース
- 「Create App」ボタンを押す。すると、アプリが作られ「Basic Information」ページが表示される。
- 「OAuth & Permissions」を開き、「Scopes」で「Bot Token Scopes」に下記の権限を付与する
- channels:history
- chat:write
- 「App Home」を開き、「Your App’s Presence in Slack」の次のフィールドを設定する
- 「Add App Display Name」
- 「Display Name (Bot Name)」: 任意の名前。例: 分報フィード
- 「Default username」: 任意の名前。例: timesfeed
- 「Add App Display Name」
- 「Install App」を開き、「Install to Workspace」ボタンをクリックする。
- 「分報フィード が XXX ワークスペースにアクセスする権限をリクエストしています」と出るので、「許可する」ボタンを押す。
- すると、「Install App Settings」ページが表示され、そこに「Bot User OAuth Token」が表示されるので、その値をメモしておく。
- Slackのアプリを開き、分報の発言を投稿するためのチャネルを作る
- チャネル名は任意。例: times_feed
- そのチャネルに上で作ったボットユーザーを招待する
- 上で設定したボット名(例:
@分報フィード
)でメンションすると招待できる。
- 上で設定したボット名(例:
- チャネルのIDを控える
- チャネルのヘッダの「#times_feed ⌄」をクリックして「チャンネル情報」を表示する。
- そこに「チャンネルID」が表示されているのでコピーして控えておく。
C03XXXXXXX
のようなID
このプログラムをVercelにデプロイしてください。
- Vercelの環境設定で下記の値をセットする
- FEED_CHANNEL: 上で控えた「チャンネルID」。
C03XXXXXXX
のようなID - TOKEN: 上で控えた「Bot User OAuth Token」。
xoxb-12345678-...
のようなトークン
- FEED_CHANNEL: 上で控えた「チャンネルID」。
環境変数をセットしたら、再度デプロイして、環境変数を効かせる必要があります。
- 「Event Subscriptions」を開き、「Enable Events」を「On」にする。
- 「Request URL」にVercelのURLを入れる
https://$project_name.vercel.app/api/postFeed
のようなURL
- URLを入れると「Verified」と表示され、フィードチャネルにテストメッセージがボットから投稿される。
- 「Subscribe to bot events」の「Add Bot User Event」をクリックし、次のイベントを追加する。
message.channels
- 「Save Changes」ボタンを押して保存する。
ボットが新規メッセージに気づくには、それぞれのチャネルに参加している必要があります。なので面倒ですが、各分報チャンネルにボットを招待しておきます。招待するには、分報チャンネルで「@分報フィード」のようにメンションすることで招待できます。