Eventos são notificações que seu agente pode enviar e receber. Existem três tipos de eventos:
- Gerado pelo servidor: enviado ao seu agente pela plataforma RBM.
- Gerado pelo usuário: enviado ao agente pelo dispositivo do usuário.
- Gerado pelo agente: enviado pelo agente ao usuário.
Eventos gerados pelo servidor
A plataforma RBM envia eventos para notificar o agente sobre atualizações no nível do servidor, como expirações de mensagens.
Para opções de formatação e valor, consulte
ServerEvent
.
A mensagem expirou. Revogação bem-sucedida
A mensagem expirou e foi revogada. Esse evento seria um bom acionador para sua estratégia de mensagens substitutas.
{ "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] }
A mensagem expirou. Falha na revogação
A mensagem expirou, mas não foi revogada.
{ "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] }
A entrega da mensagem não é garantida.
- Se a mensagem foi entregue, você receberá um evento
DELIVERED
no seu webhook. - Se a mensagem não tiver sido entregue, use a API de revogação para enviar uma solicitação de revogação.
Se a mensagem for urgente, como uma OTP ou um alerta de fraude, é melhor enviá-la por um canal alternativo, como SMS, mesmo que isso resulte em mensagens duplicadas para o usuário.
Eventos gerados pelo usuário
Assim como acontece com as mensagens de usuário e as verificações de recursos, o agente recebe eventos de usuário como JSON.
Para opções de formatação e valor, consulte
UserEvent
.
O usuário recebe uma mensagem do agente
Esse evento indica que uma mensagem foi entregue.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
O usuário lê a mensagem do agente
Esse evento indica que uma mensagem foi aberta ou confirmada.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
O usuário começa a digitar
Este evento indica que um usuário está digitando.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
O usuário envia uma mensagem de texto
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
O usuário envia um arquivo
{ "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" }
O usuário toca em uma resposta sugerida
Quando um usuário toca em uma resposta sugerida, seu agente recebe um evento com os dados e o texto de postback da resposta.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
O usuário toca em uma ação sugerida
Quando um usuário toca em uma ação sugerida, o agente recebe um evento com os dados de postback da ação.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Eventos gerados por agentes
O agente envia eventos para simular interações humanas e garantir ao usuário que o agente está interagindo com as mensagens. Para os usuários, os eventos são exibidos como notificações nas conversas.
Para opções de formatação e valor, consulte
phones.agentEvents
.
O agente envia um evento READ
Para os usuários, esse evento aparece como uma confirmação de leitura de uma mensagem específica. Ele informa ao usuário que a plataforma RBM entregou a mensagem e que o agente está processando-a.
O código a seguir envia um evento READ
para uma mensagem com um messageId
correspondente.
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);Esse código é um trecho de um agente de amostra do 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");Esse código é um trecho de um agente de amostra do 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)Esse código é um trecho de um agente de amostra do 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");Esse código é um trecho de um agente de amostra do RBM.
O agente envia um evento IS_TYPING
Para os usuários, esse evento aparece como um indicador de digitação e informa que seu
agente está escrevendo uma mensagem. O indicador de digitação expira após um curto período (aproximadamente 20 segundos) ou quando o dispositivo do usuário recebe uma nova mensagem do seu agente. Seu agente pode enviar vários eventos IS_TYPING
para redefinir o timer de expiração do indicador de digitação.
O código a seguir envia um 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!'); });Esse código é um trecho de um agente de amostra do 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");Esse código é um trecho de um agente de amostra do 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')Esse código é um trecho de um agente de amostra do 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");Esse código é um trecho de um agente de amostra do RBM.