Revocar mensajes

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.