Peristiwa adalah notifikasi yang dapat dikirim dan diterima agen Anda. Ada tiga jenis peristiwa:
- Dihasilkan server: Dikirim ke agen Anda oleh platform RBM
- Dibuat oleh pengguna: Dikirim ke agen Anda oleh perangkat pengguna
- Agent-generated: Dikirim oleh agen Anda ke pengguna
Peristiwa yang dibuat server
Platform RBM mengirimkan peristiwa untuk memberi tahu agen Anda tentang update tingkat server seperti masa berlaku pesan.
Untuk opsi format dan nilai, lihat
ServerEvent
.
Pesan sudah tidak berlaku; pencabutan berhasil
Pesan telah habis masa berlakunya dan berhasil dicabut. Peristiwa ini akan menjadi pemicu yang baik untuk strategi pesan penggantian Anda.
{ "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] }
Pesan sudah tidak berlaku; pencabutan gagal
Masa berlaku pesan telah berakhir, tetapi tidak dicabut.
{ "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] }
Pengiriman pesan tidak dijamin.
- Jika pesan terkirim, Anda akan menerima peristiwa
DELIVERED
di webhook. - Jika pesan tidak terkirim, gunakan API pencabutan untuk mengirim permintaan pencabutan.
Jika pesan sensitif terhadap waktu, seperti OTP atau pemberitahuan penipuan, sebaiknya kirim pesan melalui saluran alternatif seperti SMS meskipun hal ini menghasilkan pesan duplikat kepada pengguna.
Peristiwa buatan pengguna
Seperti halnya pesan pengguna dan pemeriksaan kemampuan, agen Anda menerima peristiwa pengguna sebagai JSON.
Untuk opsi format dan nilai, lihat
UserEvent
.
Pengguna menerima pesan agen
Peristiwa ini menandakan bahwa pesan telah dikirim.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Pengguna membaca pesan agen
Peristiwa ini menunjukkan bahwa pesan telah dibuka atau dikonfirmasi.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
Pengguna mulai mengetik
Peristiwa ini menunjukkan bahwa pengguna sedang mengetik.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
Pengguna mengirim pesan teks
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
Pengguna mengirim file
{ "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" }
Pengguna mengetuk balasan yang disarankan
Saat pengguna mengetuk balasan yang disarankan, agen Anda akan menerima peristiwa yang berisi data dan teks postback balasan.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
Pengguna mengetuk tindakan yang disarankan
Saat pengguna mengetuk tindakan yang disarankan, agen Anda akan menerima peristiwa dengan data postback tindakan.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
Peristiwa yang dibuat oleh agen
Agen Anda mengirim peristiwa untuk menyimulasikan interaksi manusia dan meyakinkan pengguna bahwa agen Anda berinteraksi dengan pesannya. Untuk pengguna, peristiwa ditampilkan sebagai notifikasi dalam percakapan mereka.
Untuk opsi format dan nilai, lihat
phones.agentEvents
.
Agen mengirim peristiwa READ
Bagi pengguna, peristiwa ini akan muncul sebagai tanda sudah dibaca untuk pesan tertentu. Hal ini memberi tahu pengguna bahwa platform RBM telah mengirimkan pesannya dan agen sedang memprosesnya.
Kode berikut mengirim peristiwa READ
untuk pesan dengan messageId
yang cocok.
cURL
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' }"
Node.js
// 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);Kode ini adalah kutipan dari agen sampel RBM.
Java
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");Kode ini adalah kutipan dari agen sampel 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)Kode ini adalah kutipan dari agen sampel 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");Kode ini adalah kutipan dari agen sampel RBM.
Agen mengirim peristiwa IS_TYPING
Bagi pengguna, peristiwa ini muncul sebagai indikator pengetikan dan memberi tahu pengguna bahwa
agen Anda sedang menulis pesan. Masa berlaku indikator pengetikan akan berakhir setelah beberapa saat
(sekitar 20 detik) atau saat perangkat pengguna menerima pesan baru dari
agen Anda. Agen Anda dapat mengirim beberapa peristiwa IS_TYPING
untuk mereset
timer habis masa berlaku indikator pengetikan.
Kode berikut mengirim peristiwa IS_TYPING
.
cURL
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', }"
Node.js
// 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!'); });Kode ini adalah kutipan dari agen sampel RBM.
Java
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");Kode ini adalah kutipan dari agen sampel 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')Kode ini adalah kutipan dari agen sampel 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");Kode ini adalah kutipan dari agen sampel RBM.