رویدادها اعلانهایی هستند که نماینده شما میتواند ارسال و دریافت کند. سه نوع رویداد وجود دارد:
- ایجاد شده توسط سرور : توسط پلت فرم RBM برای نماینده شما ارسال می شود
- ایجاد شده توسط کاربر : توسط دستگاه کاربر برای نماینده شما ارسال می شود
- Agent-generated : توسط نماینده شما برای کاربر ارسال می شود
پلت فرم RBM رویدادهایی را ارسال می کند تا نماینده شما را در مورد به روز رسانی های سطح سرور مانند انقضای پیام مطلع کند.
برای گزینههای قالببندی و مقدار، به ServerEvent
مراجعه کنید.
پیام منقضی شده است و با موفقیت لغو شد. این رویداد محرک خوبی برای استراتژی پیامرسانی مجدد شما خواهد بود.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
پیام منقضی شده است، اما لغو نشد.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKE_FAILED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
تحویل پیام تضمینی نیست.
- اگر پیام تحویل داده شد، یک رویداد
DELIVERED
در وب هوک خود دریافت خواهید کرد. - اگر پیام تحویل داده نشد، از Revoke API برای ارسال درخواست لغو استفاده کنید.
اگر پیام حساس به زمان است، مانند یک OTP یا یک هشدار تقلب، بهتر است پیام را از طریق یک کانال جایگزین مانند SMS ارسال کنید، حتی اگر پیامهای تکراری برای کاربر ایجاد شود.
مانند پیامهای کاربر و بررسی قابلیت، نماینده شما رویدادهای کاربر را بهعنوان JSON دریافت میکند.
برای گزینههای قالببندی و مقدار، به UserEvent
مراجعه کنید.
این رویداد نشان می دهد که یک پیام تحویل داده شده است.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
این رویداد نشان می دهد که یک پیام باز شده یا تایید شده است.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
این رویداد نشان می دهد که کاربر در حال تایپ است.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
{ "senderPhoneNumber": "PHONE_NUMBER", "userFile": { "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } }, "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
هنگامی که کاربر روی یک پاسخ پیشنهادی ضربه میزند، نماینده شما رویدادی را با دادههای پسبازگشت و متن پاسخ دریافت میکند.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
وقتی کاربر روی یک اقدام پیشنهادی ضربه میزند، نماینده شما رویدادی را با دادههای پسبازگشت کنش دریافت میکند.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
نماینده شما رویدادهایی را برای شبیه سازی تعاملات انسانی ارسال می کند و به کاربر اطمینان می دهد که نماینده شما با پیام های آنها درگیر است. برای کاربران، رویدادها به عنوان اعلان در مکالمات آنها نمایش داده می شود.
برای گزینههای قالببندی و مقدار، به phones.agentEvents
مراجعه کنید.
READ
ارسال می کندبرای کاربران، این رویداد به عنوان یک رسید خواندن برای یک پیام خاص ظاهر می شود. به کاربر این امکان را می دهد که بداند پلت فرم RBM پیام او را تحویل داده و عامل در حال پردازش آن است.
کد زیر یک رویداد READ
را برای پیامی با یک messageId
منطبق می فرستد.
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'READ', 'messageId': 'MESSAGE_ID' }"
// Reference to RBM API helper const rbmApiHelper = require('../libs/rbm_api_helper'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);این کد گزیده ای از یک عامل نمونه RBM است.
import com.google.rbm.samples.lib.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage(messageId, "+12223334444");این کد گزیده ای از یک عامل نمونه RBM است.
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that message_id was read rbm_service.send_read_event('+12223334444', message_id)این کد گزیده ای از یک عامل نمونه RBM است.
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that messageId has been read rbmApiHelper.SendReadMessage(messageId, "+12223334444");این کد گزیده ای از یک عامل نمونه RBM است.
IS_TYPING
ارسال می کند برای کاربران، این رویداد به عنوان یک نشانگر تایپ ظاهر میشود و به آنها اطلاع میدهد که نماینده شما در حال نوشتن پیام است. نشانگر تایپ پس از مدت کوتاهی (تقریباً 20 ثانیه) یا زمانی که دستگاه کاربر پیام جدیدی از نماینده شما دریافت می کند منقضی می شود. نماینده شما میتواند چندین رویداد IS_TYPING
ارسال کند تا تایمر انقضای نشانگر تایپ را بازنشانی کند.
کد زیر یک رویداد IS_TYPING
را ارسال می کند.
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'IS_TYPING', }"
// Reference to RBM API helper const rbmApiHelper = require('../libs/rbm_api_helper'); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage('+12223334444', function() { console.log('Typing event sent!'); });این کد گزیده ای از یک عامل نمونه RBM است.
import com.google.rbm.samples.lib.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage("+12223334444");این کد گزیده ای از یک عامل نمونه RBM است.
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that the agent is typing rbm_service.send_is_typing_event('+12223334444')این کد گزیده ای از یک عامل نمونه RBM است.
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that the agent is typing rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");این کد گزیده ای از یک عامل نمونه RBM است.