Slash-Befehle implementieren

Mit Slash-Befehlen können Sie bestimmte Befehle für Ihre App registrieren und bewerben, damit Nutzer einige der App-Funktionen besser verstehen. Wenn der Nutzer mit einer Anwendung chattet und einen Schrägstrich eingibt, werden die Slash-Befehle der Anwendung in einem Pop-up mit einer Beschreibung der Funktionen der einzelnen Befehle angezeigt.

Wenn der Nutzer Ihre App per Slash-Befehl aufruft, wird der Nachricht, die an Ihre App gesendet wurde, ein zusätzliches Feld angehängt. Dieses Feld gibt an, dass der Nutzer einen Slash-Befehl ausgewählt hat und welcher Slash-Befehl er ausgewählt hat (basierend auf der in der Konfiguration Ihrer App angegebenen Befehl-ID). Außerdem enthält der Slash-Befehl eine Annotation, genau wie der Nutzer mit dem Namen Ihrer App interagiert.

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

Die Befehls-ID, die Ihre Anwendung erhält, entspricht der Befehls-ID, die Sie in der Anwendungskonfiguration für diesen Befehl angeben:

Konfigurationsfelder des Slash-Befehls.

Dadurch kann Ihre Anwendung Slash-Befehlsfälle explizit mit begrenztem Argument-Parsing verarbeiten:

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

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