Nachrichten empfangen

RBM-Agents empfangen Nachrichten und Ereignisse über einen Webhook. Wenn ein Nutzer eine Nachricht an Ihren Agent sendet, sendet der RBM-Dienst von Google die Nachricht an Ihren konfigurierten Webhook. Ihr Agent kann die Nachricht dann decodieren, verarbeiten und eine Antwort an den Nutzer senden.

Der Nutzer sendet eine Nachricht an den Agent.

Nutzer können beliebigen Text, Standorte oder Dateien senden, die von ihrem RCS-Client unterstützt werden. Ihr Agent muss alle Texte, Standorte oder Dateien verarbeiten können, die der Nutzer sendet, sowie alle Fehlerzustände, die durch diese Nachrichten ausgelöst werden können.

Informationen dazu, wie Ihr Agent Zustellbestätigungen, Lesebestätigungen und Eingabeindikatoren verarbeiten kann, finden Sie unter Ereignisse empfangen.

Eingehende Nachrichten verarbeiten

Wie Ihr Agent Nachrichten von Nutzern verarbeitet und darauf antwortet, hängt stark von Ihrer Geschäftslogik ab. Im Allgemeinen sind die Schritte zum Antworten auf eine Nutzernachricht jedoch konsistent.

Schritt 1: Art der Nachricht identifizieren, die der Nutzer gesendet hat

Nutzer können vier Arten von Nachrichten senden:

  • Textnachrichten sind Antworten in Freiform.
  • Vorschlagsnachrichten enthalten die Postback-Daten und den Text der vorgeschlagenen Aktion oder der vorgeschlagenen Antwort, auf die der Nutzer getippt hat.
  • Standort-Nachrichten enthalten Werte für den Breitengrad und den Längengrad.

  • Dateinachrichten enthalten den URI einer Datei und zugehörige Daten.

Schritt 2: Nachrichteninhalt verarbeiten

Der Inhalt der Nutzernachricht sollte die Logik und die nächste Antwort Ihres Agents in der Unterhaltung bestimmen.

Die einfachste Möglichkeit, die Nutzerabsicht zu ermitteln, sind Postback-Daten aus einer vorgeschlagenen Antwort oder einer vorgeschlagenen Aktion. Unabhängig vom Text, der mit dem Vorschlag verknüpft ist, sind die Postback-Daten maschinenlesbar.

Wenn ein Nutzer eine Textnachricht sendet, kann Ihr Agent die Antwort nach unterstützten Keywords parsen oder NLU (wie Dialogflow) verwenden, um die Nachricht des Nutzers zu verarbeiten und einen Weg zu finden, wie es weitergehen kann.

Standort- und Dateinachrichten enthalten keinen Text oder keine Postback-Daten. Ihr Agent sollte daher den Kontext der Unterhaltung und die letzten Nachrichten berücksichtigen, bevor er antwortet.

Wenn Ihr Agent nicht weiß, wie er auf die Nachricht des Nutzers antworten soll, sollte er mit einem Fehlerzustand antworten und versuchen, die Unterhaltung fortzusetzen, indem er den Nutzer um zusätzliche Informationen bittet, ihn auf andere Weise um Eingaben bittet oder vorgeschlagene Antworten und vorgeschlagene Aktionen präsentiert, auf die der Agent antworten kann.

Schritt 3: Geschäftslogik für die Interaktion ausführen

Sobald Ihr Agent die richtige Antwort auf die Nachricht des Nutzers gefunden hat, ruft er die erforderlichen Informationen aus Ihrer Infrastruktur ab und interagiert bei Bedarf mit anderen Systemen, um die Geschäftslogik für die Interaktion auszuführen.

Schritt 4: Antworten Sie dem Nutzer.

Nachdem der Agent die Geschäftslogik für die Interaktion ausgeführt hat, sendet er eine weitere Nachricht und setzt die Unterhaltung mit dem Nutzer fort.

Beispiele

Der folgende Code zeigt, wie Ihr Agent Nachrichten empfängt. Informationen zur Formatierung und zu Werten finden Sie unter UserMessage.

Agent empfängt Text

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "text": "Hello, world!"
}

Agent empfängt eine Nachricht aus einem Vorschlag

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "suggestionResponse": {
    "postbackData": "suggestion_1",
    "text": "Suggestion #1"
  }
}

Agent empfängt einen Standort

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "location": {
    "latitude": 37.422000,
    "longitude": -122.084056
  }
}

Agent empfängt eine Datei

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "thumbnail": {
      "mimeType": "image/jpeg",
      "fileSizeBytes": 1280,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8",
      "fileName": "4_animated.jpeg"
    },
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  }
}