Votre agent peut révoquer un message qui a été envoyé, mais pas encore distribué. Il est préférable de révoquer les messages non distribués avant qu'ils n'expirent. Le délai dépend du cas d'utilisation de votre agent. Par exemple, vous pouvez révoquer un message OTP après dix minutes, mais révoquer un message promotionnel à une date d'expiration spécifique. Pour que les messages soient remis à temps, veillez à les révoquer suffisamment tôt pour pouvoir les envoyer par un autre moyen, comme par SMS.
Il existe deux façons de révoquer un message :
Envoyez une demande de révocation pour déclencher la révocation. La réponse "200 OK" confirme que le message a été révoqué et supprimé de la file d'attente de l'utilisateur. Une réponse "404 Not Found" (404 Introuvable) signifie que la tentative de révocation a échoué, car le message a été distribué.
Définissez une date d'expiration pour un message afin de le révoquer automatiquement au moment opportun. La plate-forme RBM avertit votre agent lorsque le message a expiré et confirme s'il a été révoqué ou non. Pour en savoir plus, consultez Événements générés par le serveur.
Il arrive que la révocation échoue. Par exemple, votre agent peut tenter de révoquer un message alors que la plate-forme RBM est en train de le distribuer. 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 l'envoyer vers un autre canal, comme les SMS, pour qu'il soit distribué rapidement.
Exemple
Le code suivant envoie une demande 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");