Zdarzenia to powiadomienia, które Twój agent może wysyłać i odbierać. Są 3 typy zdarzeń:
- Wygenerowane przez serwer: wiadomość wysłana do agenta przez platformę RBM.
- Wygenerowane przez użytkownika: wysłane do agenta przez urządzenie użytkownika.
- Wygenerowane przez agenta: wiadomość wysłana przez agenta do użytkownika.
Zdarzenia generowane przez serwer
Platforma RBM wysyła zdarzenia, aby powiadamiać agenta o aktualizacjach na poziomie serwera, takich jak data wygaśnięcia wiadomości.
Opcje formatowania i wartości znajdziesz w sekcji ServerEvent
.
Wiadomość wygasła; udało się ją unieważnić
Wiadomość wygasła i została unieważniona. Byłoby ono dobrym wyzwalaczem dla zastępczej strategii przesyłania wiadomości.
{ "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] }
Wiadomość wygasła; nie udało się unieważnić
Wiadomość wygasła, ale nie została odwołana.
{ "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] }
Nie ma gwarancji dostarczenia wiadomości.
- Jeśli wiadomość została dostarczona, otrzymasz na webhooku zdarzenie
DELIVERED
. - Jeśli wiadomość nie została dostarczona, użyj interfejsu API unieważniania, aby wysłać żądanie unieważnienia.
Jeśli wiadomość jest pilna – na przykład w przypadku hasła jednorazowego lub alertu o oszustwie, najlepiej jest wysłać ją alternatywnym kanałem, np. SMS-em, nawet jeśli spowoduje to zduplikowanie wiadomości.
Zdarzenia generowane przez użytkowników
Tak jak w przypadku wiadomości i sprawdzania możliwości agent otrzymuje zdarzenia użytkownika w formacie JSON.
Opcje formatowania i wartości znajdziesz w sekcji UserEvent
.
Użytkownik otrzymuje wiadomość agenta
To zdarzenie oznacza, że wiadomość została dostarczona.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Użytkownik czyta wiadomość agenta
To zdarzenie oznacza, że wiadomość została otwarta lub potwierdzona.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Użytkownik zaczyna pisać
To zdarzenie oznacza, że użytkownik pisze.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
Użytkownik wysyła SMS-a
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
Użytkownik wysyła plik
{ "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" }
Użytkownik klika sugerowaną odpowiedź
Gdy użytkownik kliknie sugerowaną odpowiedź, agent otrzyma zdarzenie z danymi wywołania zwrotnego i tekstem tej odpowiedzi.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
Użytkownik klika sugerowane działanie
Gdy użytkownik kliknie sugerowane działanie, agent otrzyma zdarzenie z danymi wywołania zwrotnego działania.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Zdarzenia wygenerowane przez agenta
Agent wysyła zdarzenia, aby symulować interakcje człowieka i zapewnić użytkownikowi, że wchodzi on w interakcję z jego wiadomościami. U użytkowników wydarzenia są wyświetlane jako powiadomienia w rozmowach.
Opcje formatowania i wartości znajdziesz w sekcji phones.agentEvents
.
Agent wysyła zdarzenie READ
Dla użytkowników to wydarzenie jest widoczne jako potwierdzenie odbioru konkretnej wiadomości. Dzięki niemu użytkownik wie, że platforma RBM dostarczyła jego wiadomość, a agent ją przetwarza.
Ten kod wysyła zdarzenie READ
w przypadku wiadomości z pasującym elementem messageId
.
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);Ten kod jest fragmentem przykładowego agenta RBM.
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");Ten kod jest fragmentem przykładowego agenta RBM.
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)Ten kod jest fragmentem przykładowego agenta RBM.
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");Ten kod jest fragmentem przykładowego agenta RBM.
Agent wysyła zdarzenie IS_TYPING
Jest ono widoczne dla użytkowników jako wskaźnik pisania i informuje, że pracownik obsługi klienta tworzy wiadomość. Wskaźnik pisania wygasa po krótkim czasie (około 20 sekund) lub po otrzymaniu nowej wiadomości od agenta. Agent może wysyłać wiele zdarzeń IS_TYPING
, aby zresetować licznik czasu wygaśnięcia wskaźnika pisania.
Ten kod wysyła zdarzenie IS_TYPING
.
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!'); });Ten kod jest fragmentem przykładowego agenta RBM.
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");Ten kod jest fragmentem przykładowego agenta RBM.
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')Ten kod jest fragmentem przykładowego agenta RBM.
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");Ten kod jest fragmentem przykładowego agenta RBM.