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); });
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(); }
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)
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");