スラッシュ コマンドを使用すると、アプリの特定のコマンドを登録してアドバタイズし、ユーザーがアプリの機能の一部を理解できるようになります。ユーザーがアプリとチャット中にスラッシュを入力すると、アプリのスラッシュ コマンドがポップアップに表示され、各コマンドの説明が表示されます。
ユーザーがスラッシュ コマンドでアプリを起動すると、アプリに送信されるメッセージには、追加のフィールドが追加されます。このフィールドは、ユーザーがスラッシュ コマンドと選択したスラッシュ コマンドを(アプリの構成で指定されたコマンド ID に基づいて)選択したことを示します。さらに、ユーザーが名前でアプリを操作した場合と同様に、スラッシュ コマンドにはアノテーションが表示されます。
{
...
"message": {
...
"text": "/vote yes",
"argumentText": " yes",
"annotations": [
{
"length": 5,
"startIndex": 0,
"slashCommand": {
"type": "INVOKE",
"user": {
"avatarUrl": "https://.../avatar.png",
"displayName": "VoteBot",
"name": "users/1234567890987654321",
"type": "BOT"
}
},
"type": "SLASH_COMMAND"
}
],
"slashCommand": {
"commandId": 2
}
}
}
アプリが受け取るコマンド ID は、アプリの構成でそのコマンドに指定したコマンド ID に対応します。
これにより、アプリは引数引数を制限して明示的にスラッシュ コマンドのケースを処理できます。
if (message.slashCommand) {
switch (message.slashCommand.commandId) {
case 2: // /vote
return vote(message.argumentText);
}
}
// Other existing handling for users invoking your app by name.