このリポジトリは、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:readchat:writecommands
左サイドバーから 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-subscriptionshttps://api.slack.com/apps/{APP_ID}/slash-commandshttps://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 git@github.com: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 localhttps://{your-awesome-subdomain}.ngrok.io/slack/events のような URL を以下の Request URL の項目に設定します。全て同じ URL で OK です。
https://api.slack.com/apps/{APP_ID}/slash-commandshttps://api.slack.com/apps/{APP_ID}/event-subscriptionshttps://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





















