Révoquer des messages

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 ne deviennent obsolètes. Le délai dépend du cas d'utilisation de votre agent. Par exemple, vous pouvez révoquer un message OTP après 10 minutes, mais révoquer un message promotionnel à une date d'expiration spécifique. Pour assurer la distribution rapide des messages, veillez à les révoquer à temps afin de pouvoir les envoyer par un routage secondaire, par exemple par SMS.

Il existe deux façons de révoquer un message:

  • Envoyez une requête 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 abouti, la plate-forme RBM cesse de tenter de distribuer le message et celui-ci est supprimé de la file d'attente de l'utilisateur.

  • Définissez un délai d'expiration du message pour le révoquer automatiquement au moment approprié. 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 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 pendant que la plate-forme RBM est en train de le distribuer. Si la révocation échoue, recherchez un événement DELIVERED sur 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 (par SMS, par exemple) pour garantir une distribution rapide.

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" \
-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('../libs/rbm_api_helper');

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

Java

import com.google.rbm.samples.lib.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 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 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 extrait d'un exemple d'agent RBM.