Révoquer des messages

Votre agent peut révoquer un message qui a été envoyé, mais qui n'a pas encore été distribué. Il est préférable de révoquer les messages non distribués avant qu'ils ne deviennent obsolètes. Le calendrier dépend du cas d'utilisation de votre agent. Par exemple, vous pouvez révoquer un message d'OTP au bout de dix minutes, mais révoquer un message promotionnel à une date d'expiration spécifique. Pour que les messages soient distribués à temps, veillez à les révoquer à temps pour pouvoir les envoyer par un autre moyen, comme un SMS.

Vous pouvez révoquer un message de deux manières:

  • Envoyez une demande de révocation pour déclencher la révocation. Lorsque la plate-forme RBM reçoit une demande de révocation, elle renvoie 200 OK. La réponse 200 OK ne confirme pas si le message a été révoqué ou non. Si la révocation a réussi, la plate-forme RBM cesse d'essayer de distribuer le message et celui-ci est supprimé de la file d'attente de l'utilisateur.

  • Définir une date d'expiration du message pour le révoquer automatiquement au moment opportun. La plate-forme RBM avertit votre agent lorsque le message a expiré et confirme s'il a bien été révoqué ou non. Pour en savoir plus, consultez la section Événements générés par le serveur.

Dans de rares cas, la révocation peut échouer. Par exemple, votre agent peut tenter de révoquer un message alors que la plate-forme RBM est en train de le diffuser. Si la révocation échoue, recherchez un événement DELIVERED dans votre webhook. Si le message n'a pas été distribué, vous pouvez envoyer une nouvelle demande de révocation, puis acheminer le message vers un autre canal, comme un SMS, pour vous assurer qu'il sera distribué dans les meilleurs délais.

Exemple

Le code suivant envoie une requête de révocation. Pour en savoir plus sur la mise en forme et les valeurs, consultez phones.agentMessages.delete.

cURL

curl -X DELETE "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages/MESSAGE_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`"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Stop the message associated with messageId from being delivered
rbmApiHelper.revokeMessage('+12223334444', messageId, function(err, response) {
   console.log(response);
});
Ce code est un extrait d'un exemple d'agent RBM.

Java

import com.google.rbm.RbmApiHelper;


try {
   // Create an instance of the RBM API helper
   RbmApiHelper rbmApiHelper = new RbmApiHelper();

   // Stop the message associated with messageId from being delivered
   rbmApiHelper.revokeMessage(messageId, "+12223334444");
} catch(Exception e) {
   e.printStackTrace();
}
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

# Stop the message associated with message_id from being delivered
rbm_service.revoke('+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);

// Stop the message associated with messageId from being delivered
rbmApiHelper.RevokeMessage(messageId, "+12223334444");
Ce code est un extrait d'un exemple d'agent RBM.