Acara

Peristiwa adalah notifikasi yang dapat dikirim dan diterima agen Anda. Ada tiga jenis peristiwa:

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.