نماینده شما میتواند پیامی را که ارسال شده اما هنوز تحویل داده نشده است، لغو کند. بهتر است پیامهای تحویل داده نشده را قبل از اینکه بیارزش شوند، لغو کنید. زمانبندی به مورد استفاده نماینده شما بستگی دارد. به عنوان مثال، ممکن است یک پیام OTP را پس از ده دقیقه لغو کنید اما یک پیام تبلیغاتی را در یک تاریخ انقضای خاص لغو کنید. برای تحویل به موقع پیام، حتماً پیامها را به موقع لغو کنید تا بتوانید آنها را از طریق مسیر جایگزین مانند پیامک ارسال کنید.
دو راه برای لغو یک پیام وجود دارد:
برای فعال کردن لغو، یک درخواست لغو ارسال کنید . پاسخ ۲۰۰ OK تأیید میکند که پیام لغو و از صف انتظار کاربر حذف شده است. پاسخ ۴۰۴ Not Found به این معنی است که تلاش برای لغو با شکست مواجه شده است زیرا پیام تحویل داده شده است.
برای لغو خودکار پیام در زمان مناسب، تاریخ انقضای پیام را تنظیم کنید . پلتفرم RBM به اپراتور شما اطلاع میدهد که پیام منقضی شده است و تأیید میکند که آیا با موفقیت لغو شده است یا خیر. برای اطلاعات بیشتر به رویدادهای تولید شده توسط سرور مراجعه کنید.
لغو درخواست در موارد نادر ممکن است با شکست مواجه شود. برای مثال، ممکن است نماینده شما در حالی که پلتفرم RBM در حال تحویل پیام است، سعی در لغو آن کند. اگر لغو پیام با شکست مواجه شد، رویداد DELIVERED را در وبهوک خود بررسی کنید. اگر پیام تحویل داده نشده باشد، میتوانید یک درخواست لغو جدید ارسال کنید و سپس پیام را برای تحویل به موقع به یک کانال جایگزین مانند پیامک هدایت کنید.
مثال
کد زیر یک درخواست ابطال ارسال میکند. برای قالببندی و اطلاعات مربوط به مقدار، به phones.agentMessages.delete مراجعه کنید.
حلقه
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`"
نود جی اس
// 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); });
جاوا
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(); }
پایتون
# 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)
سی شارپ
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");