コマンドのリスニングと応答
スラッシュコマンドが実行されたリクエストをリッスンするには、アプリで command()
メソッドを使用します。メソッドの使用には文字列か正規表現の commandName
の指定が必要です。
⚠️ 同じ対象にマッチする正規表現の command()
を複数使用する場合、マッチする 全ての リスナーが実行されることに注意してください。そのような挙動を意図しない場合は、これが発生しないよう正規表現をデザインしてください。
アプリがスラッシュコマンドのリクエストを受け取ったことを ack()
の実行によって Slack に通知する必要があります。
スラッシュコマンドへの応答には 2 つのやり方があります。1 つ目の方法は、文字列または JSON ペイロード を受け取る say()
で、2 つ目は response_url
を簡単に利用するためのユーティリティである respond()
です。これらについては、「アクションへの応答」セクションで詳しく説明しています。
Slack アプリの管理画面でスラッシュコマンドを設定するとき、そのスラッシュコマンドの Request URL に(https://{ドメイン}
に続いて) /slack/events
を指定するようにしてください。
// この echo コマンドは ただ、その引数を(やまびこのように)おうむ返しする
app.command('/echo', async ({ command, ack, respond }) => {
// コマンドリクエストを確認
await ack();
await respond(`${command.text}`);
});