رویدادها اعلانهایی هستند که نماینده شما میتواند ارسال و دریافت کند. سه نوع رویداد وجود دارد:
- ایجاد شده توسط سرور : توسط پلت فرم 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
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_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`" \ -d "{ 'eventType': 'READ', 'messageId': 'MESSAGE_ID' }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);این کد گزیده ای از یک عامل نمونه RBM است.
جاوا
import com.google.rbm.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
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_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`" \ -d "{ 'eventType': 'IS_TYPING', }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // 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.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 است.