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 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);
});
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.