Gli eventi sono notifiche che l'agente può inviare e ricevere. Esistono tre tipi di eventi:
- Generato dal server: inviato all'agente dalla piattaforma RBM
- Generato dall'utente: inviato all'agente dal dispositivo dell'utente
- Generato dall'agente: inviato dall'agente all'utente.
Eventi generati dal server
La piattaforma RBM invia eventi per notificare all'agente gli aggiornamenti a livello di server, ad esempio le scadenze dei messaggi.
Per informazioni su formattazione e opzioni dei valori, consulta
ServerEvent
.
Il messaggio è scaduto; revoca riuscita
Il messaggio è scaduto ed è stato revocato. Questo evento è un buon attivatore per la tua strategia di messaggistica di riserva.
{ "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] }
Il messaggio è scaduto. Revoca non riuscita
Il messaggio è scaduto, ma non è stato revocato.
{ "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] }
La consegna dei messaggi non è garantita.
- Se il messaggio è stato recapitato, riceverai un evento
DELIVERED
sul webhook. - Se il messaggio non è stato recapitato, utilizza l'API revoca per inviare una richiesta di revoca.
Se il messaggio è sensibile alla data, ad esempio una OTP o un avviso di attività fraudolenta, è meglio inviarlo tramite un canale alternativo come SMS, anche se questo comporta la presenza di messaggi duplicati per l'utente.
Eventi generati dall'utente
Come per i messaggi utente e i controlli delle funzionalità, il tuo agente riceve gli eventi utente in formato JSON.
Per informazioni su formattazione e opzioni dei valori, consulta
UserEvent
.
L'utente riceve il messaggio dell'agente
Questo evento indica che un messaggio è stato recapitato.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
L'utente legge il messaggio dell'agente
Questo evento indica che un messaggio è stato aperto o confermato.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
L'utente inizia a digitare
Questo evento indica che un utente sta scrivendo.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
L'utente invia un messaggio
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
L'utente invia un file
{ "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" }
L'utente tocca una risposta suggerita
Quando un utente tocca una risposta suggerita, l'agente riceve un evento con il testo e i dati postback della risposta.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
L'utente tocca un'azione suggerita
Quando un utente tocca un'azione suggerita, l'agente riceve un evento con i dati postback dell'azione.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Eventi generati dall'agente
L'agente invia eventi per simulare interazioni umane e rassicura l'utente che l'agente sta interagendo con i suoi messaggi. Per gli utenti, gli eventi vengono visualizzati come notifiche all'interno delle loro conversazioni.
Per informazioni su formattazione e opzioni dei valori, consulta
phones.agentEvents
.
L'agente invia un evento READ
Per gli utenti, questo evento viene visualizzato come conferma di lettura di un messaggio specifico. Consente all'utente di sapere che la piattaforma RBM ha consegnato il suo messaggio e che l'agente lo sta elaborando.
Il codice seguente invia un evento READ
per un messaggio con un messageId
corrispondente.
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);Questo codice è un estratto da un agente di esempio 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");Questo codice è un estratto da un agente di esempio 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)Questo codice è un estratto da un agente di esempio 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");Questo codice è un estratto da un agente di esempio RBM.
L'agente invia un evento IS_TYPING
Per gli utenti, questo evento viene visualizzato come indicatore di digitazione e informa gli utenti che
l'agente sta scrivendo un messaggio. L'indicatore di digitazione scade dopo un breve periodo di tempo (circa 20 secondi) o quando il dispositivo dell'utente riceve un nuovo messaggio dall'agente. L'agente può inviare più eventi IS_TYPING
per reimpostare il timer di scadenza dell'indicatore di digitazione.
Il codice seguente invia un evento 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!'); });Questo codice è un estratto da un agente di esempio 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");Questo codice è un estratto da un agente di esempio 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')Questo codice è un estratto da un agente di esempio 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");Questo codice è un estratto da un agente di esempio RBM.