رویداد

رویدادها اعلان‌هایی هستند که نماینده شما می‌تواند ارسال و دریافت کند. سه نوع رویداد وجود دارد:

رویدادهای ایجاد شده توسط سرور

پلت فرم 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 است.