「今日のひとこと」は、リモートワークの雑談のネタを提供し、職場環境を良くするSlackアプリです。
毎朝始業のときに「今日のひとこと」を投稿すれば、リモートワークで不足しがちな雑談のネタを毎日提供します。 毎日続けるとメンバーのことをより知ることができ、より働きやすい職場環境を作ることができます!
1. Slack API: Applications を開き、アプリを新規作成( Create New App
)
例)
App Name:今日のひとこと
Development Slack Workspace: アプリをインストールしたい組織を選択
例)
App Name: 今日のひとこと
Short description: 今日のひとこと
App icon & Preview: 任意のアイコン
Background color: 任意のカラー
その後、以下の設定を行い Save Changes
する
Request URL
は後ほど正式に入力するとして、適当にhttps://localhost
と入力するCreate New Shortcut
ボタンをクリックして、ショートカットを作成する
例)
Where should this shortcut appear? :Global
Name:今日のひとこと
Short Description: 今日のひとこと
Callback ID: how_are_you_today
chat:write
users:read
files:write
例)
Display Name:今日のひとこと
Default username: how_are_you_today
一度、インストールすると、それ以後、APIの各設定を変更状況に応じて、Reinstall を求められるため、メッセージに応じてReinstall App
ボタンをクリッックして、再インストールする
- 任意のチャンネルを開き、[詳細]を開く
- [その他]を選択し、[アプリを追加する]を選択する
- リストから[今日のひとこと]を探して、[追加]ボタンをクリックして追加する
- Firebase consoleにログインする。
- consoleで新しいFirebaseのプロジェクトを作成する。プロジェクト名は
how-are-you-today-bot
に設定する。 - 作成したFirebaseプロジェクトをBlaze(従量課金)にアップグレードする。
- Firebase CLIをローカルにインストールする。
※別のプロジェクト名を使用する場合は、 .firebaserc
の内容を書き換えてください。
firebase login
firebase functions:config:set slack.token=<ボットのアクセストークン>
firebase functions:config:set slack.channel=<投稿先のチャンネル名>
- <投稿先のチャンネル名> : 「今日のひとこと」を投稿するチャンネル名
- <ボットのアクセストークン> : Slackアプリ設定ページの
Install App
>Bot User OAuth Access Token
npm run deploy
FirebaseプロジェクトコンソールでFunctionsを開き、デプロイされた関数のURLを確認する。
https://asia-northeast1-<プロジェクト名>.cloudfunctions.net/shortcut
のようなURLになる。
Slackアプリ設定ページの「Interactivity & Shortcuts」を開き、Request URL
へそのURLを設定する。
- ngrokコマンドをローカルから実行できるようにインストールする
cp functions/.runtimeconfig.json.example functions/.runtimeconfig.json
functions/.runtimeconfig.json
を適切に設定する
- "channel" : 「今日のひとこと」を投稿するチャンネル名
- "token" : Slackアプリ設定ページの
Install App
>Bot User OAuth Access Token
cd functions
npm install
npm run run-local
ngrok http 5001
上記を実行すると以下のようなメッセージがターミナルに出力される
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Session Expires 6 hours, 19 minutes
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://xxxxxxxxxxxxxx.ngrok.io -> http://localhost:5001
Forwarding https://xxxxxxxxxxxxxx.ngrok.io -> http://localhost:5001
Connections ttl opn rt1 rt5 p50 p90
16 0 0.00 0.00 1.59 60.92
Slackアプリ設定の「Interactivity & Shortcuts」を開き、Request URL
へ以下の値を設定
<ngrokのHTTPSのURL>/how-are-you-today-bot/us-central1/shortcut
例えば、上記のコマンド出力の場合は以下の値になります。
https://xxxxxxxxxxxxxx.ngrok.io/how-are-you-today-bot/us-central1/shortcut