เหตุการณ์คือการแจ้งเตือนที่ตัวแทนสามารถส่งและรับได้ เหตุการณ์มี 3 ประเภท ดังนี้
- สร้างโดยเซิร์ฟเวอร์: ส่งให้ตัวแทนของคุณโดยแพลตฟอร์ม RBM
- ที่ผู้ใช้สร้างขึ้น: อุปกรณ์ของผู้ใช้ส่งไปยังตัวแทนของคุณ
- สร้างโดยตัวแทน:ตัวแทนส่งให้ผู้ใช้
เหตุการณ์ที่เซิร์ฟเวอร์สร้างขึ้น
แพลตฟอร์ม 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
ที่เว็บฮุค - หากข้อความไม่ได้รับการนำส่ง ให้ใช้ API เพิกถอนเพื่อส่งคำขอเพิกถอน
หากข้อความมีเวลาจำกัด เช่น OTP หรือการแจ้งเตือนการประพฤติมิชอบ วิธีที่ดีที่สุดคือส่งข้อความผ่านช่องทางอื่น เช่น SMS แม้ว่าจะส่งผลให้ผู้ใช้ได้รับข้อความซ้ำก็ตาม
กิจกรรมที่ผู้ใช้สร้างขึ้น
เช่นเดียวกับข้อความของผู้ใช้และการตรวจสอบความสามารถ ตัวแทนของคุณจะได้รับเหตุการณ์ของผู้ใช้ในรูปแบบ JSON
ดูตัวเลือกการจัดรูปแบบและค่าได้ที่
UserEvent
ผู้ใช้ได้รับข้อความจากตัวแทน
เหตุการณ์นี้ระบุว่ามีการนำส่งข้อความแล้ว
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
ผู้ใช้อ่านข้อความ Agent
เหตุการณ์นี้ระบุว่ามีการเปิดหรือรับทราบข้อความ
{ "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" }
ผู้ใช้ส่ง SMS
{ "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" }
ผู้ใช้แตะคำตอบที่แนะนำ
เมื่อผู้ใช้แตะการตอบที่แนะนำ ตัวแทนของคุณจะได้รับเหตุการณ์ที่มีข้อมูลและข้อความการรายงานผล Conversion ของการตอบ
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
ผู้ใช้แตะการดำเนินการที่แนะนำ
เมื่อผู้ใช้แตะการดําเนินการที่แนะนํา ตัวแทนของคุณจะได้รับเหตุการณ์ที่มีข้อมูลการรายงานผล Conversion ของการดําเนินการ
{ "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
Java
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
Python
# 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
C#
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
Java
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
Python
# 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
C#
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