Tu agente puede revocar un mensaje que se haya enviado, pero que aún no se haya entregado. Es mejor revocar los mensajes no entregados antes de que se vuelvan obsoletos. El tiempo depende del caso de uso de tu agente. Por ejemplo, puedes revocar un mensaje de OTP después de diez minutos, pero revocar un mensaje promocional en una fecha de vencimiento específica. Para entregar mensajes de manera oportuna, asegúrate de revocar los mensajes a tiempo para poder enviarlos por una ruta alternativa, como los SMS.
Existen dos maneras de revocar un mensaje:
Envía una solicitud de revocación para activar la revocación. Cuando la plataforma de RBM recibe una solicitud de revocación, muestra 200 OK. La respuesta 200 OK no confirma si el mensaje se revocó o no. Si la revocación se realizó correctamente, la plataforma de RBM dejará de intentar entregar el mensaje, y este se borrará de la cola del usuario.
Configura un vencimiento del mensaje para revocarlo automáticamente en el momento adecuado. La plataforma de RBM notifica a tu agente cuando el mensaje expiró y confirma si se revocó correctamente o no. Consulta Eventos generados por el servidor para obtener más información.
En raras ocasiones, la revocación podría fallar. Por ejemplo, tu agente puede intentar revocar un mensaje mientras la plataforma de RBM está en proceso de entregarlo. Si falla la revocación, busca un evento DELIVERED
en tu webhook. Si no se ha entregado el mensaje, puedes enviar una solicitud de revocación nueva y, luego, enrutar el mensaje a un canal alternativo, como SMS, para garantizar que la entrega sea oportuna.
Ejemplo
El siguiente código envía una solicitud de revocación. Para obtener información sobre el formato y el valor, consulta 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); });Este código es un extracto de un agente de muestra de 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(); }Este código es un extracto de un agente de muestra de 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)Este código es un extracto de un agente de muestra de 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");Este código es un extracto de un agente de muestra de RBM.