インタラクティブコンポーネント
インタラクティブコンポーネントは、様々なサーフェスエリアにインタラクティビティをもたらす Block Kit エレメントのサブセットです。blocks でのインタラクションはチャンネル内のメッセージ上だけではなく、モーダル や Home タブ でも発生します。
この SDK で Block Kit を使ったメッセージを組み立てる方法は「メッセージの組み立て方」を参考にしてください。
Slack アプリの設定
インタラクティブコンポーネントを有効にするには Slack アプリ管理画面にアクセスし、開発中のアプリを選択、左ペインの Features > Interactivity & Shortcuts へ遷移します。このページで以下の設定を行います。
- Interactivity を Off から On にする
https://{あなたのドメイン}/slack/events
を Request URL に設定 (ソケットモードの場合、この手順は不要です)- 最下部にある Save Changes ボタンをクリック
Bolt アプリがやること
Bolt アプリがユーザーインタラクションへの応答のためにやらなければならないことは以下の通りです。
- Slack API からのリクエストを検証
- リクエストボディをパースして
action_id
が処理対象か確認 - ユーザとの次のインタラクションのためのメッセージやその他のインターフェースを構築
- 受け取ったことを伝えるために Slack API へ 200 OK 応答
Bolt アプリは Slack API サーバーからのリクエストに対して 3 秒以内に ack()
メソッドで応答する必要があります。3 秒以内に応答しなかった場合、コマンドを実行したユーザーに対して Slack 上でタイムアウトした旨が通知されます。external_select
などの場合は ack()
の引数に正しい形式の内容を含める必要があります。