הנציג יכול לבטל הודעה שנשלחה אבל עדיין לא נמסרה. מומלץ לבטל את השליחה של הודעות שלא נמסרו לפני שהן מתיישנות. התזמון תלוי בתרחיש השימוש של הסוכן. לדוגמה, יכול להיות שתבטלו הודעת קוד אימות חד-פעמי אחרי עשר דקות, אבל תבטלו הודעה שיווקית בתאריך תפוגה ספציפי. כדי שההודעות יגיעו בזמן, חשוב לבטל את השליחה בזמן כדי שתוכלו לשלוח אותן בדרך חלופית, כמו SMS.
יש שתי דרכים לבטל את השליחה של הודעה:
שולחים בקשה לביטול כדי להפעיל את הביטול. תגובת 200 OK מאשרת שההודעה בוטלה ונמחקה מהתור של המשתמש. תגובה מסוג 404 Not Found (לא נמצא) מציינת שניסיון הביטול נכשל כי ההודעה נמסרה.
הגדרת תפוגה להודעה כדי לבטל את ההודעה באופן אוטומטי בזמן המתאים. פלטפורמת RBM מודיעה לנציג מתי התוקף של ההודעה פג, ומאשרת אם היא בוטלה בהצלחה או לא. מידע נוסף זמין במאמר בנושא אירועים שנוצרו בשרת.
במקרים נדירים, יכול להיות שהביטול ייכשל. לדוגמה, יכול להיות שהנציג האוטומטי ינסה לבטל הודעה בזמן שפלטפורמת RBM מעבירה אותה. אם הביטול נכשל, בודקים אם יש אירוע DELIVERED
ב-webhook. אם ההודעה לא נמסרה, אפשר לשלוח בקשת ביטול חדשה ואז להעביר את ההודעה לערוץ חלופי כמו SMS כדי שהיא תימסר בזמן.
דוגמה
הקוד הבא שולח בקשת ביטול. מידע על הפורמט והערך זמין במאמר 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); });
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(); }
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)
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");