Nachrichten empfangen

Nach der Registrierung bei Business Nachrichten, können Sie Nachrichten im Namen des Test-Agents empfangen. Du kannst Nachrichten empfangen für Marken, die Sie verwalten, nachdem Sie erstellen, verify und starten für diese Marken zu erstellen.

Wenn ein Kunde eine Nachricht an einen von Ihnen verwalteten Agent sendet, wird Business Messages eine JSON-Nutzlast mit verschiedenen IDs, Nachrichteninhalten, und Standortinformationen.

Logs der Business Communications Developer Console verwenden Seite um Probleme bei der Nachrichtenzustellung zu beheben.

Eingehende Nachrichten verarbeiten

Wie der Agent Nachrichten von Nutzern verarbeitet und darauf reagiert, hängt stark davon ab, auf Ihre Geschäftslogik. Im Allgemeinen sind die Schritte zum Reagieren Nachrichten konsistent sind.

Nachricht bestätigen

Geben Sie eine gültige HTTP-Antwort zurück, um eine vom Webhook empfangene Nachricht zu bestätigen an den Webhook gesendet werden.

Wenn eine Nachricht aufgrund eines Zustellungszeitlimits, der Erreichbarkeit des Webhooks wird die Nachricht von Google gespeichert und weitergeleitet. nach 7 Tagen oder bis der Webhook erfolgreich die angezeigt.

Prüfen, ob die Nachricht von Google stammt

Sie sollten überprüfen, ob die Nachricht von Google gesendet wurde, bevor Sie sie verarbeiten. Inhalte.

So überprüfen Sie, ob Google eine Nachricht gesendet hat, die Sie erhalten haben:

  1. Parst den X-Goog-Signature-Header der Nachricht. Dies ist ein gehashter base64-codierte Kopie der Nutzlast des Nachrichtentexts.
  2. Unter Verwendung Ihres Client-Tokens, das bei der Konfiguration Ihres Webhook) einen SHA512-HMAC der Bytes der Nachrichtennutzlast codiert das Ergebnis mit base64.

  3. Vergleichen Sie den Hash X-Goog-Signature mit dem von Ihnen erstellten Hash.

    • Wenn die Hashes übereinstimmen, haben Sie bestätigt, dass die Nachricht von Google gesendet wurde.
    • Wenn die Hash-Werte nicht übereinstimmen, überprüfen Sie den Hash-Prozess auf einem als funktionierend bekannten angezeigt. Wenn der Hash-Prozess ordnungsgemäß funktioniert und Sie eine Nachricht, die Ihrer Meinung nach in betrügerischer Absicht an Sie gesendet wurde, wenden Sie sich an uns (Sie müssen unterschreiben mit einem Business Messages-Google-Konto.

Beispiel für die Nachrichtenüberprüfung in den GitHub-Repositories für Echo Bots in Java Node.js und Python.

Sprache ermitteln

Nutzer kommunizieren von vielen Standorten aus und in vielen Sprachen. Business Messages der Nutzer Spracheinstellungen mit resolvedLocale und userDeviceLocale-Feldern, die auf dem jeweiligen Gerät basieren. Spracheinstellungen. Weitere Informationen finden Sie unter Lokalisierung und Sprachen.

Leiten Sie Nachrichten nach Möglichkeit weiter und verfassen Sie Antworten basierend auf den Sprache Einstellungen.

Nachricht kontextabhängig weiterleiten

Der Nachrichtenkontext gibt an, nach welcher Art von Informationen der Nutzer sucht. Wenn ein Nutzer z. B. eine Nachricht mit einer placeId haben sie eine Nachricht an einen bestimmten Standort (gekennzeichnet durch placeId) gesendet und sind stellen standortspezifische Fragen. Das Gleiche gilt, wenn eine Nachricht nearPlaceId-Wert, der einen Standort in der Nähe des Nutzers angibt, möchte standortspezifische Informationen abrufen, aber der Kundenservicemitarbeiter sollte die Standort, mit dem der Nutzer chatten möchte, bevor er die Unterhaltung beginnt.

Leiten Sie die Nachricht mithilfe der Kontextinformationen an die beste Stelle weiter. eignet sich für Folgendes:

  • Wenn sich die Nachricht in einer neuen Konversation befindet und eine häufig gestellte Frage ist, können Sie mit Automatisierung beantworten können.
  • Wenn die Frage nicht automatisch bearbeitet werden kann, leiten Sie sie an einen Kundenservicemitarbeiter weiter.
  • Wenn die Sprache der Nachricht nicht mit der Standardsprache Ihres Agents übereinstimmt, leiten Sie die an einen Kundenservicemitarbeiter, der diese Sprache unterstützt.
  • Wenn sich die Frage auf einen bestimmten Ort bezieht, leiten Sie sie an jemanden mit Informationen zu diesem Ort.
  • Wenn sich die Nachricht in einer laufenden Unterhaltung befindet, leiten Sie sie an den Kundenservicemitarbeiter weiter sich am Gespräch zu beteiligen.

Art der vom Nutzer gesendeten Nachricht identifizieren

Nutzer können drei Arten von Nachrichten senden:

  • SMS sind freie Antworten.
  • Bildnachrichten enthalten eine signierte URL für ein Bild, das der Nutzer hochgeladen.
  • Vorschlagsnachrichten enthalten die Postback-Daten und den Text die vorgeschlagene Aktion oder vorgeschlagene Antwort, die der Nutzer angetippt hat.

Nachrichteninhalt verarbeiten

Wenn Ihr Agent Automatisierung verwendet, sollte der Inhalt der Nutzernachricht die Logik des Agents und die nächste Antwort in der Unterhaltung.

Am einfachsten lässt sich die Nutzerabsicht mit Postback-Daten aus einer vorgeschlagene Antwort oder vorgeschlagene Aktion. Unabhängig von dem Text, der mit die Postback-Daten maschinenlesbar sind.

Wenn ein Nutzer eine SMS sendet, parst Ihr Agent möglicherweise die Antwort für Keywords unterstützt oder auf Natural Language Understanding (wie mit dem Dialogflow Integration um die Nachricht der Nutzenden zu verarbeiten und einen Weg für die Weiterleitung zu identifizieren.

Wenn der Agent nicht weiß, wie er auf die Nachricht des Nutzers antworten soll, sollte er mit einem Fehlerstatus antworten und versuchen, der Nutzer zur Eingabe zusätzlicher Informationen auffordert, indem er oder die Unterhaltung an einen Kundenservicemitarbeiter weiterleiten.

Dem Nutzer antworten

Nachdem der Agent die richtige Antwort identifiziert hat – entweder durch Automatisierung oder eine Live-Kundenservicemitarbeiter: Sie sendet Nachricht und setzt die Unterhaltung mit dem Nutzer fort.

Berücksichtigen Sie beim Verfassen einer Antwort die Sprache des Nutzers. Außerdem können Sie Antworten durch Abrufen von Werten aus dem userInfo-Objekt jeweils anpassen erhalten.

Nachrichtentypen

Der folgende Code zeigt, wie der Agent Nachrichten empfängt.

Informationen zu Formatierung und Werten finden Sie unter UserMessage

Text

Am häufigsten antworten Nutzende mit Nur-Text. SMS enthalten im folgenden Format.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "message": {
    "messageId": "MESSAGE_ID",
    "name": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "text": "MESSAGE_TEXT",
    "createTime": "MESSAGE_CREATE_TIME",
  },
  "dialogflowResponse": {
    "autoResponded": "BOOLEAN",
    "faqResponse": {
      "userQuestion": "USER_QUESTION",
      "answers": [{
        "faqQuestion": "FAQ_QUESTION",
        "faqAnswer": "FAQ_ANSWER",
        "matchConfidenceLevel": "CONFIDENCE_LEVEL",
        "matchConfidence": "CONFIDENCE_NUMERIC",
      }],
    },
  },
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Message

Bild

Nutzer können dem Agent nicht nur Text, sondern auch Bilder als Nachrichten senden. Business Messages speichert geteilte Bilder 7 Tage lang, unter URLs und fügt diese URLs in das Feld text der Nachrichtennutzlast ein.

Wenn Ihr Agent Automatisierung umfasst, sorgen Sie dafür, dass die Automatisierung weiß, wie sie reagieren soll Ein Nutzer teilt ein Bild. Für Kundenservicemitarbeiter: Bilder müssen übergeben werden oder dass URLs in Nachrichten anklickbar sind.

...
"message": {
    "text": "https://storage.googleapis.com/business-messages-us/936640919331/jzsu6cdguNGsBhmGJGuLs1DS?x-goog-algorithm\u003dGOOG4-RSA-SHA256\u0026x-goog-credential\u003duranium%40rcs-uranium.iam.gserviceaccount.com%2F20190826%2Fauto%2Fstorage%2Fgoog4_request\u0026x-goog-date\u003d20190826T201038Z\u0026x-goog-expires\u003d604800\u0026x-goog-signedheaders\u003dhost\u0026x-goog-signature\u003d89dbf7a74d21ab42ad25be071b37840a544a43d68e67270382054e1442d375b0b53d15496dbba12896b9d88a6501cac03b5cfca45d789da3e0cae75b050a89d8f54c1ffb27e467bd6ba1d146b7d42e30504c295c5c372a46e44728f554ba74b7b99bd9c6d3ed45f18588ed1b04522af1a47330cff73a711a6a8c65bb15e3289f480486f6695127e1014727cac949e284a7f74afd8220840159c589d48dddef1cc97b248dfc34802570448242eac4d7190b1b10a008404a330b4ff6f9656fa84e87f9a18ab59dc9b91e54ad11ffdc0ad1dc9d1ccc7855c0d263d93fce6f999971ec79879f922b582cf3bb196a1fedc3eefa226bb412e49af7dfd91cc072608e98"
  }
...

Informationen zu Formatierungs- und Wertoptionen finden Sie unter Message

Vorschlag

Mit vorgeschlagenen Antworten und vorgeschlagenen Aktionen können Nutzer antworten oder bestimmte Aktionen ausführen Aktionen mit nur einmal tippen. Wenn ein Nutzer auf einen Vorschlag tippt, erhält der Agent eine Nutzlast durch den Vorschlagstext und die Postback-Daten.

Vorschlagsnachrichten haben das folgende Format.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "suggestionResponse": {
    "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID",
    "postbackData": "POSTBACK_DATA",
    "createTime": "RESPONSE_CREATE_TIME",
    "text": "SUGGESTION_TEXT",
    "suggestionType": "SUGGESTION_TYPE",
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Informationen zu Formatierungs- und Wertoptionen finden Sie unter SuggestionResponse

Authentifizierungsanfrage

Mit dem Vorschlag „Authentifizierungsanfrage“ können sich Nutzer mit OAuth anmelden Anbieter, dem Agent Details zur Identität zur Verfügung zu stellen oder ihm zu gestatten, Aktionen für die Nutzer Weitere Informationen finden Sie unter Authentifizieren mit OAuth.

Wenn sich ein Nutzer erfolgreich beim angegebenen OAuth-Anbieter anmeldet, eine Nutzlast mit dem Autorisierungscode empfängt. Wenn eine Nutzerin oder ein Nutzer meldet der Agent eine Nutzlast mit Fehlerdetails.

Nachrichten von Authentifizierungsanfragen haben das folgende Format.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "requestId": "REQUEST_ID",
  "authenticationResponse": {
    "code": "AUTHORIZATION_CODE",
    "redirect_uri": "REDIRECT_URI",
    "errorDetails": {
      "error": "ERROR",
      "errorDescription": "ERROR_DESCRIPTION",
    },
  }
  "context": {
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
  },
  "sendTime": "SEND_TIME",
}

Informationen zu Formatierungs- und Wertoptionen finden Sie unter AuthenticationResponse

Nachrichtenkontext

Jede Nachricht enthält Kontextinformationen über den Ursprung der Nachricht.

...
  "context": {
    "customContext": "CUSTOM_CONTEXT",
    "entryPoint": "CONVERSATION_ENTRYPOINT",
    "placeId": "LOCATION_PLACE_ID",
    "nearPlaceId": "NEARBY_LOCATION_PLACE_ID",
    "deflectedPhoneNumber": "DEFLECTED_PHONE_NUMBER",
    "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES",
    "userInfo": {
      "displayName": "USER_NAME",
      "userDeviceLocale": "USER_LOCALE",
    },
    "widget": {
      "url": "WEBSITE_URL",
      "widgetContext": "WIDGET_CONTEXT",
    },
  },
...
Feld Beschreibung
customContext Vom Partner angegebene Kontextdaten.
entryPoint Die Messaging-Oberfläche, über die der Nutzer die Unterhaltung begonnen hat (definiert) durch EntryPoint.
placeId Eine eindeutige Kennung aus der Google Places-Datenbank für den Standort an die der Nutzer gesendet hat. Sie erscheint nur in Nachrichten von standortspezifischen und Einstiegspunkten.
nearPlaceId Eine eindeutige ID aus der Google Places-Datenbank für den ersten in einem lokalen Paket gespeichert. Standorte bestätigen, mit denen Nutzer chatten möchten wenn Sie nearPlaceId-Werte erhalten.
deflectedPhoneNumber Die Telefonnummer, unter der der Nutzer in Business Messages nicht angerufen werden kann wann das Gespräch begann.
resolvedLocale

Die beste berechnete Übereinstimmung mit der Sprache des Nutzers (gemeldet in userDeviceLocale) und den unterstützten Sprachen des Agents (basierend auf den festgelegten Konversationseinstellungen). Weitere Informationen finden Sie unter Lokalisierung und Starten des Gesprächs.

Der Wert für die Sprache ist ein korrekt formatiertes IETF BCP 47-Tag.

userInfo.displayName Der Name des Nutzers, der die Nachricht gesendet hat. Wenn der Nutzer Identitätsfreigabe vorhanden ist, ist dieses Feld leer.
userInfo.userDeviceLocale Die Sprache des Nutzers, gemeldet vom Gerät, in korrektem Format IETF BCP 47-Tag.
widget.url Die URL der Website, auf der die Conversational Surface gestartet wurde.
widget.widgetContext Die <ph type="x-smartling-placeholder"></ph> data-bm-widget-context-Attributwert des verwendeten Widgets um das Gespräch zu beginnen.

Unterhaltungsverlauf

Google stellt keine Konversationsverläufe zur Verfügung. Bisherigen Verlauf beibehalten im Einklang mit Ihrer Datenschutzerklärung und Ihren Best Practices, damit Sie fundierte Antworten auf zukünftige Nachrichten von Nutzern senden können.