Revoca messaggi

L'agente può revocare un messaggio inviato, ma non ancora consegnato. È meglio revocare i messaggi non recapitati prima che diventino inattivi. Le tempistiche dipendono dal caso d'uso dell'agente. Ad esempio, puoi revocare un messaggio OTP dopo dieci minuti, ma revocare un messaggio promozionale in una data di scadenza specifica. Per una consegna tempestiva dei messaggi, assicurati di revocare i messaggi in tempo per inviarli con un percorso alternativo come gli SMS.

Esistono due modi per revocare un messaggio:

  • Invia una richiesta di revoca per attivarla. Quando la piattaforma RBM riceve una richiesta di revoca, restituisce 200 OK. La risposta 200 OK non conferma se il messaggio è stato revocato o meno. Se la revoca ha esito positivo, la piattaforma RBM smette di provare a consegnare il messaggio e il messaggio viene eliminato dalla coda dell'utente.

  • Imposta una scadenza per i messaggi per revocare automaticamente il messaggio al momento opportuno. La piattaforma RBM invia una notifica all'agente quando il messaggio è scaduto e conferma se è stato revocato o meno. Per ulteriori informazioni, consulta Eventi generati dal server.

In rare occasioni, la revoca potrebbe non riuscire. Ad esempio, l'agente potrebbe tentare di revocare un messaggio mentre la piattaforma RBM è in fase di consegna. Se la revoca non va a buon fine, verifica la presenza di un evento DELIVERED nel webhook. Se il messaggio non è stato recapitato, puoi inviare una nuova richiesta di revoca e quindi inoltrarlo a un canale alternativo come SMS per garantire la tempestiva consegna.

Esempio

Il codice seguente invia una richiesta di revoca. Per informazioni su formattazione e valore, 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);
});
Questo codice è un estratto da un agente di esempio 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();
}
Questo codice è un estratto da un agente di esempio 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)
Questo codice è un estratto da un agente di esempio 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");
Questo codice è un estratto da un agente di esempio RBM.