Événements

Les événements sont des notifications que votre agent peut envoyer et recevoir. Il existe trois types d'événements :

Événements générés par le serveur

La plate-forme RBM envoie des événements pour informer votre agent des mises à jour au niveau du serveur, telles que les expirations de messages.

Pour connaître les options de mise en forme et de valeur, consultez ServerEvent.

Le message a expiré et a bien été révoqué

Le message a expiré et a bien été révoqué. Cet événement serait un bon déclencheur pour votre stratégie de messagerie de remplacement.

{
  "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]
}

Le message a expiré. Révocation échouée

Le message a expiré, mais il n'a pas été révoqué.

{
  "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 distribution des messages n'est pas garantie.

  • Si le message a été distribué, vous recevrez un événement DELIVERED sur votre webhook.
  • Si le message n'a pas été distribué, utilisez l'API de révocation pour envoyer une demande de révocation.

Si le message est urgent (comme un mot de passe à usage unique ou une alerte de fraude, par exemple), il est préférable de l'envoyer via un autre canal, tel que le SMS, même si cela entraîne des messages en double pour l'utilisateur.

Événements générés par les utilisateurs

Comme pour les messages utilisateur et les vérifications de fonctionnalités, votre agent reçoit les événements utilisateur au format JSON.

Pour connaître les options de mise en forme et de valeur, consultez UserEvent.

L'utilisateur reçoit le message de l'agent

Cet événement indique qu'un message a été distribué.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "DELIVERED",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

L'utilisateur lit le message de l'agent

Cet événement indique qu'un message a été ouvert ou confirmé.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "READ",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

L'utilisateur commence à saisir du texte

Cet événement indique qu'un utilisateur est en train de taper.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",,
  "agentId": "AGENT_ID"
}

L'utilisateur envoie un message

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "text": "Hi",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

L'utilisateur envoie un fichier

{
  "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'utilisateur appuie sur une suggestion de réponse

Lorsqu'un utilisateur appuie sur une réponse suggérée, votre agent reçoit un événement avec les données de postback et le texte de la réponse.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234",
    "text": "Hello there!"
  }
}

L'utilisateur appuie sur une action suggérée

Lorsqu'un utilisateur appuie sur une action suggérée, votre agent reçoit un événement avec les données postback de l'action.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234"
  }
}

Événements générés par l'agent

Votre agent envoie des événements pour simuler des interactions humaines et assurer à l'utilisateur que votre agent interagit avec ses messages. Pour les utilisateurs, les événements s'affichent sous forme de notifications dans leurs conversations.

Pour connaître les options de mise en forme et de valeur, consultez phones.agentEvents.

L'agent envoie un événement READ

Pour les utilisateurs, cet événement s'affiche sous la forme d'un accusé de réception pour un message spécifique. Il indique à l'utilisateur que la plate-forme RBM a envoyé son message et que l'agent le traite.

Le code suivant envoie un événement READ pour un message avec un messageId correspondant.

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);
Ce code est un extrait d'un exemple d'agent RBM.

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");
Ce code est un extrait d'un exemple d'agent 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)
Ce code est un extrait d'un exemple d'agent 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");
Ce code est un extrait d'un exemple d'agent RBM.

L'agent envoie un événement IS_TYPING.

Pour les utilisateurs, cet événement s'affiche sous la forme d'un indicateur de frappe et leur indique que votre agent est en train de rédiger un message. L'indicateur de frappe expire au bout d'un court laps de temps (environ 20 secondes) ou lorsque l'appareil de l'utilisateur reçoit un nouveau message de votre agent. Votre agent peut envoyer plusieurs événements IS_TYPING pour réinitialiser le minuteur d'expiration de l'indicateur de saisie.

Le code suivant envoie un événement 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!');
});
Ce code est un extrait d'un exemple d'agent RBM.

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");
Ce code est un extrait d'un exemple d'agent 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')
Ce code est un extrait d'un exemple d'agent 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");
Ce code est un extrait d'un exemple d'agent RBM.