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
- Creato dall'utente: inviati al tuo 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, come le scadenze dei messaggi.
Per le opzioni di formattazione e valore, consulta
ServerEvent
.
Il messaggio è scaduto; revoca riuscita
Il messaggio è scaduto ed è stato revocato correttamente. Questo evento sarebbe 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 del messaggio non è garantita.
- Se il messaggio è stato recapitato, riceverai un evento
DELIVERED
nel tuo webhook. - Se il messaggio non è stato recapitato, utilizza l'API di revoca per inviare una richiesta di revoca.
Se il messaggio è urgente, ad esempio un codice OTP o un avviso di attività fraudolenta, è meglio inviarlo tramite un canale alternativo come l'SMS, anche se questo comporta l'invio di messaggi duplicati all'utente.
Eventi generati dagli utenti
Come per i messaggi utente e i controlli delle funzionalità, l'agente riceve gli eventi utente come JSON.
Per le opzioni di formattazione e valore, consulta
UserEvent
.
L'utente riceve il messaggio dell'agente
Questo evento indica che un messaggio è stato consegnato.
{ "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 digitando.
{ "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 i dati e il testo del 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 del 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 le interazioni umane e assicurare all'utente che interagisce con i suoi messaggi. Per gli utenti, gli eventi vengono visualizzati come notifiche all'interno delle conversazioni.
Per le opzioni di formattazione e valore, consulta
phones.agentEvents
.
L'agente invia un evento READ
Per gli utenti, questo evento viene visualizzato come una conferma di lettura per un messaggio specifico. Comunica all'utente che la piattaforma RBM ha recapitato il suo messaggio e che l'agente lo sta elaborando.
Il seguente codice 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&agentId=AGENT_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('@google/rcsbusinessmessaging'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);Questo codice è un estratto di un agente RBM di esempio.
Java
import com.google.rbm.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 di 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 di 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 di un agente di esempio RBM.
L'agente invia un evento IS_TYPING
Per gli utenti, questo evento viene visualizzato come indicatore di digitazione e li informa che il tuo agente sta scrivendo un messaggio. L'indicatore di digitazione scade dopo poco tempo
(circa 20 secondi) o quando il dispositivo dell'utente riceve un nuovo messaggio
dal tuo 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&agentId=AGENT_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('@google/rcsbusinessmessaging'); // 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 di un agente RBM di esempio.
Java
import com.google.rbm.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 di 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 di 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 di un agente RBM di esempio.