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.