スラッシュ コマンドを実装する

スラッシュ コマンドを使用すると、アプリの特定のコマンドを登録してアドバタイズし、ユーザーがアプリの機能の一部を理解できるようになります。ユーザーがアプリとチャット中にスラッシュを入力すると、アプリのスラッシュ コマンドがポップアップに表示され、各コマンドの説明が表示されます。

ユーザーがスラッシュ コマンドでアプリを起動すると、アプリに送信されるメッセージには、追加のフィールドが追加されます。このフィールドは、ユーザーがスラッシュ コマンドと選択したスラッシュ コマンドを(アプリの構成で指定されたコマンド 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.