Peristiwa

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

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.