このリポジトリは、Slack の Bolt⚡️ フレームワークを使ったアプリのテンプレートです。この README は以下のような Slack アプリを作る手順をカバーしています。
- CodeSandboxを使う: ステップ 1 -> ステップ 2A
- Glitchを使う: ステップ 1 -> ステップ 2B
- ローカルマシン(Linux/macOS/Windows)を使う: ステップ 1 -> ステップ 2C
まずは Slack App を https://api.slack.com/apps でつくりましょう。
左サイドバーから Features > OAuth & Permissions へアクセスして、Bot Scope を以下の通り追加します。
https://api.slack.com/apps/{APP_ID}/oauth
app_mentioned:read
chat:write
commands
左サイドバーから Settings > Install App にアクセスしてください。さらにいくつかの設定を後ほど行いますが、まずは bot token (xoxb-***
) を入手するためにワークスペースにインストールしてみてください。
https://api.slack.com/apps/{APP_ID}/install-on-team
2019 年 12 月時点で CodeSandbox は GitHub アカウントのみのログインをサポートしています。GitHub アカウントが必要となりますので、ご準備ください。
この手順はとても簡単です。この GitHub リポジトリを import 対象として指定して、新規の Sandbox を作ってください。
Create Sandbox
をクリックImport
タブへ遷移https://github.com/seratch/bolt-starter
を入力Open Sandbox
をクリック
すると、テンプレートの Sandbox が作成されますので、これを fork して作業用の Sandbox を作ります。
この Sandbox プロジェクトで secrets の値を設定します。
- SLACK_SIGNING_SECRET: Basic Information > App Credentials > Signing Secret の値を表示して取得
- SLACK_BOT_TOKEN: Slack App 管理画面 Settings > Install App に表示された
xoxb-
で始まる Bot User OAuth Access Token
たった、これだけで完了です!もし変更しても反映されないときは同じ画面の Restart Sandbox ボタンを押してください。
CodeSandbox の右側のペインを見ると https://{random}.sse.codesandbox.io/
のような URL が表示され、そのアクセス結果が表示されているはずです。
この URL に /slack/events
というパスを加えた https://{random}.sse.codesandbox.io/slack/events
を Slack App 内の Request URL の項目に設定します。全て同じ URL で OK です。設定する箇所は以下の三箇所です。
- Interactivity & Shortcuts: Off -> On に変えて Request URL を指定したら Save Changes で保存
- Slash Commands:
/open-modal
という名前のコマンドを追加、その Request URL に上記の URL を指定して保存 - Event Subscriptions: Off -> On に変えて Request URL を設定し Bot Events の中の
app_mention
を選択して Save Changes で保存
設定が変更されて、再インストールを促されていると思います。もう一度インストールし直してください。
https://api.slack.com/apps/{APP_ID}/install-on-team
手順は CodeSandbox にかなり似ています。
プロジェクトを作成したら、 _env
ファイルを複製して .env
という名前をつけて保存します。.env
という名前のファイルは特殊なファイルとして認識され、Glitch は自動的に秘匿すべき情報の書かれたファイルとして、あなた以外のユーザには閲覧できないように制御してくれます。
.env
の編集が終わったら、アプリが正常に起動できているかログを確認してください。特にエラーのトレースが出ていなければ問題ないでしょう。
Glitch 上で上記のような手順でアクセスすると Live App の設定のところで https://{some-fancy-name}.glitch.me/
のような URL を入手できます。
この https://{some-fancy-name}.glitch.me/slack/events
を Slack App の設定に何箇所か出てくる Request URL として指定します。全て同じ URL で OK です。
https://api.slack.com/apps/{APP_ID}/event-subscriptions
https://api.slack.com/apps/{APP_ID}/slash-commands
https://api.slack.com/apps/{APP_ID}/interactive-messages
設定が変更されて、再インストールを促されていると思います。もう一度インストールし直してください。
https://api.slack.com/apps/{APP_ID}/install-on-team
https://ngrok.com/ を使ってインターネットに公開された URL を生成し、ローカルで動いているアプリにリクエストを流します。
ngrok http 3000
もし有償プランに入っている場合は、サブドメインを固定のものに指定することができます。
ngrok http 3000 --subdomain your-awesome-subdomain
- Node Version Manager (nvm) をインストール
nvm install --lts
(最新の LTS バージョンをインストール)
- nvm-windows from here をインストール
mvn list available
を実行してダウンロード可能なバージョンを調べるnvm install {最新の LTS バージョン}
(最新の LTS バージョンをインストール)
もし Windows Subsystem for Linux (WSL) を使っている場合は Linux / macOS
と全く同じステップでいけるはずです。
あるいは、以下の方法でこのテンプレートをローカルにダウンロードしてください。
git clone [email protected]:seratch/bolt-starter.git
or https://github.com/seratch/bolt-starter/archive/master.zip
cd bolt-starter
cp _env .env
# edit .env
npm i
npm run local
https://{your-awesome-subdomain}.ngrok.io/slack/events
のような URL を以下の Request URL の項目に設定します。全て同じ URL で OK です。
https://api.slack.com/apps/{APP_ID}/slash-commands
https://api.slack.com/apps/{APP_ID}/event-subscriptions
https://api.slack.com/apps/{APP_ID}/interactive-messages
左サイドバーから Features > Slash Commands へアクセスします。/open-modal
というスラッシュコマンドを以下の内容で設定し、保存します。
https://api.slack.com/apps/{APP_ID}/slash-commands
- Command:
/open-modal
- request URL:
https://{your-awesome-subdomain}.ngrok.io/slack/events
- Short Description: お好きな内容で
- "Save" ボタンを押すのを忘れずに!
左サイドバーから Features > Event Subscriptions へアクセスします。有効にしたら app_mention
というイベントを bot event で受信するよう設定し、忘れずに "Save Changes" ボタンを押してください。
https://api.slack.com/apps/{APP_ID}/event-subscriptions
app_mention
左サイドバーから Features > Interactivity & Shortcuts へアクセスします。有効にしたら Request URL を適切に設定して "Save Changes" ボタンを忘れずに押してください。
https://api.slack.com/apps/{APP_ID}/interactive-messages
左サイドバーから Features > Interactivity & Shortcuts > Shortcuts へアクセスします。Callback ID open-modal
でグローバルショットカットをつくります。
- Name: お好きな内容で
- Short Description: お好きな内容で
- Callback ID:
open-modal
- "Create" ボタンをクリック
設定が変更されて、再インストールを促されていると思います。もう一度インストールし直してください。
https://api.slack.com/apps/{APP_ID}/install-on-team
The MIT License