Revocar mensajes

Tu agente puede revocar un mensaje que se envió, pero que aún no se entregó. Es mejor revocar los mensajes no entregados antes de que se vuelvan obsoletos. El momento 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 garantizar la entrega oportuna de los mensajes, asegúrate de revocarlos a tiempo para enviarlos por una ruta alternativa, como SMS.

Existen dos formas de revocar un mensaje:

  • Envía una solicitud de revocación para activar la revocación. La respuesta 200 OK confirma que se revocó el mensaje y se borró de la cola del usuario. Una respuesta 404 Not Found significa que el intento de revocación falló porque se entregó el mensaje.

  • Establece un vencimiento del mensaje para revocarlo automáticamente en el momento adecuado. La plataforma de RBM notifica a tu agente cuando vence el mensaje y confirma si se revocó correctamente. 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 el mensaje no se entregó, puedes enviar una nueva solicitud de revocación y, luego, enrutar el mensaje a un canal alternativo, como SMS, para que se entregue a tiempo.

Ejemplo

El siguiente código envía una solicitud de revocación. Para obtener información sobre el formato y los valores, consulta 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);
});
Este código es un fragmento de un agente de muestra de 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();
}
Este código es un fragmento 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 fragmento 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 fragmento de un agente de muestra de RBM.