Peristiwa adalah notifikasi yang dapat dikirim dan diterima agen Anda. Ada tiga jenis peristiwa:
- Dibuat server: Dikirim ke agen Anda oleh platform RBM
- Buatan pengguna: Dikirim ke agen Anda oleh perangkat pengguna
- Dibuat oleh agen: Dikirim oleh agen Anda kepada pengguna
Peristiwa yang dihasilkan server
Platform RBM mengirimkan peristiwa untuk memberi tahu agen Anda tentang pembaruan tingkat server seperti masa berlaku pesan.
Untuk opsi pemformatan dan nilai, lihat
ServerEvent
.
Pesan sudah tidak berlaku; pencabutan berhasil
Pesan telah kedaluwarsa 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] }
Masa berlaku pesan telah berakhir; 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 bersifat mendesak, seperti OTP atau notifikasi penipuan, sebaiknya kirim pesan melalui saluran alternatif seperti SMS meskipun hal ini akan 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 menunjukkan 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 direspons.
{ "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 dengan 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 agen
Agen Anda mengirim peristiwa untuk menyimulasikan interaksi manusia dan meyakinkan pengguna bahwa agen Anda berinteraksi dengan pesan mereka. Bagi pengguna, peristiwa ditampilkan sebagai notifikasi dalam percakapan mereka.
Untuk opsi format dan nilai, lihat
phones.agentEvents
.
Agen mengirim peristiwa READ
Bagi pengguna, peristiwa ini muncul sebagai tanda dibaca untuk pesan tertentu. Hal ini memungkinkan pengguna mengetahui bahwa platform RBM telah mengirimkan pesan mereka 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&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);Kode ini adalah nukilan dari agen contoh 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");Kode ini adalah nukilan dari agen contoh 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 contoh 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 contoh RBM.
Agen mengirim peristiwa IS_TYPING
Bagi pengguna, peristiwa ini muncul sebagai indikator pengetikan dan memberi tahu mereka bahwa agen Anda sedang menulis pesan. 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 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&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!'); });Kode ini adalah kutipan dari agen contoh 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");Kode ini adalah kutipan dari agen contoh 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 contoh 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 contoh RBM.