Ereignisse sind Benachrichtigungen, die Ihr Agent senden und empfangen kann. Es gibt drei Arten von Ereignissen:
- Server-generated (Servergeneriert): Wird von der RBM-Plattform an Ihren Agent gesendet.
- Nutzergeneriert: vom Gerät des Nutzers an Ihren Agent gesendet
- Agent-generated (Agent-generiert): von Ihrem Agent an den Nutzer gesendet
Servergenerierte Ereignisse
Die RBM-Plattform sendet Ereignisse, um Ihren Agent über Aktualisierungen auf Serverebene wie Ablauf von Nachrichten zu informieren.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter ServerEvent
.
Nachricht ist abgelaufen; Widerruf erfolgreich
Die Nachricht ist abgelaufen und wurde erfolgreich widerrufen. Dieses Ereignis wäre ein guter Auslöser für Ihre Fallback-Messaging-Strategie.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
Nachricht ist abgelaufen; Widerruf fehlgeschlagen
Die Nachricht ist abgelaufen, wurde aber nicht widerrufen.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKE_FAILED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
Die Zustellung der Nachricht ist nicht garantiert.
- Wenn die Nachricht zugestellt wurde, erhalten Sie ein
DELIVERED
-Ereignis an Ihrem Webhook. - Wenn die Nachricht nicht zugestellt wurde, verwenden Sie die Widerrufs-API, um eine Widerrufsanfrage zu senden.
Wenn die Nachricht zeitkritisch ist, z. B. bei einem OTP oder einer Betrugswarnung, sollten Sie sie über einen anderen Kanal wie SMS senden, auch wenn dies zu doppelten Nachrichten an den Nutzer führt.
Von Nutzern erstellte Ereignisse
Wie bei Nutzernachrichten und Funktionsprüfungen empfängt der Agent Nutzerereignisse als JSON.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter UserEvent
.
Nutzer erhält Agent-Nachricht
Dieses Ereignis zeigt an, dass eine Nachricht zugestellt wurde.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Nutzer liest Agent-Nachricht
Dieses Ereignis zeigt an, dass eine Nachricht geöffnet oder bestätigt wurde.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Nutzer beginnt zu tippen
Dieses Ereignis zeigt an, dass ein Nutzer gerade etwas schreibt.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
Der Nutzer sendet eine SMS
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
Nutzer sendet eine Datei
{ "senderPhoneNumber": "PHONE_NUMBER", "userFile": { "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } }, "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
Der Nutzer tippt auf eine vorgeschlagene Antwort.
Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, erhält der Agent ein Ereignis mit den Postback-Daten und dem Text der Antwort.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
Der Nutzer tippt auf eine vorgeschlagene Aktion.
Wenn ein Nutzer auf eine vorgeschlagene Aktion tippt, erhält der Agent ein Ereignis mit den Postback-Daten der Aktion.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Vom Agent generierte Ereignisse
Der Agent sendet Ereignisse, um menschliche Interaktionen zu simulieren und dem Nutzer zu bestätigen, dass der Agent mit seinen Nachrichten interagiert. Für Nutzer werden Ereignisse als Benachrichtigungen in ihren Unterhaltungen angezeigt.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter phones.agentEvents
.
Der Kundenservicemitarbeiter sendet ein READ
-Ereignis
Nutzern wird dieses Ereignis als Lesebestätigung für eine bestimmte Nachricht angezeigt. Sie teilt dem Nutzer mit, dass die RBM-Plattform seine Nachricht gesendet hat und der Agent sie verarbeitet.
Mit dem folgenden Code wird ein READ
-Ereignis für eine Nachricht mit einer übereinstimmenden messageId
gesendet.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'READ', 'messageId': 'MESSAGE_ID' }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('../libs/rbm_api_helper'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Java
import com.google.rbm.samples.lib.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage(messageId, "+12223334444");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that message_id was read rbm_service.send_read_event('+12223334444', message_id)Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that messageId has been read rbmApiHelper.SendReadMessage(messageId, "+12223334444");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Der Kundenservicemitarbeiter sendet ein IS_TYPING
-Ereignis
Nutzer sehen dieses Ereignis als Eingabeanzeige und teilt ihnen mit, dass Ihr Agent eine Nachricht erstellt. Die Eingabeanzeige läuft nach einer kurzen Zeit (ca. 20 Sekunden) ab oder wenn das Gerät des Nutzers eine neue Nachricht von Ihrem Agent empfängt. Der Agent kann mehrere IS_TYPING
-Ereignisse senden, um den Ablauftimer der Eingabeanzeige zurückzusetzen.
Mit dem folgenden Code wird ein IS_TYPING
-Ereignis gesendet.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'IS_TYPING', }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('../libs/rbm_api_helper'); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage('+12223334444', function() { console.log('Typing event sent!'); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Java
import com.google.rbm.samples.lib.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage("+12223334444");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that the agent is typing rbm_service.send_is_typing_event('+12223334444')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that the agent is typing rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.