Implémenter des commandes à barre oblique

Les commandes à barre oblique vous permettent d'enregistrer et de promouvoir des commandes spécifiques pour votre application afin d'aider les utilisateurs à comprendre certaines fonctionnalités de l'application. Lorsque l'utilisateur discute avec une application et saisit une barre oblique, les commandes à barre oblique de l'application apparaissent dans une fenêtre pop-up, avec une description de ce que fait chaque commande.

Lorsque l'utilisateur appelle votre application par commande à barre oblique, un champ supplémentaire est joint au message envoyé à votre application. Ce champ indique que l'utilisateur a sélectionné une commande à barre oblique, ainsi que la commande à barre oblique qu'il a sélectionnée (en fonction de l'ID de commande spécifié dans la configuration de votre application). De plus, la commande à barre oblique comporte une annotation, tout comme lorsque l'utilisateur interagit avec votre application par son nom.

{
  ...
  "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
    }
  }
}

L'ID de commande que votre application recevra recevra correspond à l'ID de commande que vous spécifiez pour cette commande dans la configuration de votre application:

Champs de configuration de la commande Slash.

Cela permet à votre application de gérer explicitement les cas de commande à barre oblique avec une analyse limitée des arguments:

if (message.slashCommand) {
  switch (message.slashCommand.commandId) {
    case 2:  // /vote
      return vote(message.argumentText);
  }
}

// Other existing handling for users invoking your app by name.