Nachrichten widerrufen

Ihr Agent kann eine Nachricht widerrufen, die gesendet, aber noch nicht zugestellt wurde. Nicht zugestellte Nachrichten sollten am besten widerrufen werden, bevor sie veraltet sind. Die Dauer hängt vom Anwendungsfall des Agents ab. Sie können beispielsweise eine OTP-Nachricht nach zehn Minuten widerrufen, eine Werbebotschaft jedoch bis zu einem bestimmten Ablaufdatum. Für eine rechtzeitige Nachrichtenzustellung sollten Sie Nachrichten rechtzeitig widerrufen, damit Sie sie über eine alternative Route wie SMS senden können.

Es gibt zwei Möglichkeiten, eine Nachricht zu widerrufen:

  • Senden Sie eine Widerrufsanfrage, um den Widerruf auszulösen. Wenn die RBM-Plattform eine Widerrufsanfrage erhält, gibt sie „200 OK“ zurück. Die Antwort „200 OK“ bestätigt nicht, ob die Nachricht widerrufen wurde. Wenn der Widerruf erfolgreich war, stoppt die RBM-Plattform den Versuch, die Nachricht zuzustellen, und sie wird aus der Warteschlange des Nutzers gelöscht.

  • Legen Sie einen Nachrichtenablauf fest, um die Nachricht zum entsprechenden Zeitpunkt automatisch zu widerrufen. Die RBM-Plattform benachrichtigt Ihren Agent, wenn die Nachricht abgelaufen ist, und bestätigt, ob sie erfolgreich widerrufen wurde oder nicht. Weitere Informationen finden Sie unter Servergenerierte Ereignisse.

Der Widerruf kann in seltenen Fällen fehlschlagen. Beispielsweise kann der Agent versuchen, eine Nachricht zu widerrufen, während sie von der RBM-Plattform gesendet wird. Wenn der Widerruf fehlschlägt, suchen Sie in Ihrem Webhook nach einem DELIVERED-Ereignis. Wenn die Nachricht nicht zugestellt wurde, können Sie eine neue Widerrufsanfrage senden und die Nachricht dann an einen anderen Kanal wie SMS weiterleiten, um eine rechtzeitige Zustellung sicherzustellen.

Beispiel

Mit dem folgenden Code wird eine Widerrufsanforderung gesendet. Informationen zu Formatierung und Werten finden Sie unter 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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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();
}
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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)
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.

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");
Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.