Zdarzenia

Zdarzenia to powiadomienia, które Twój agent może wysyłać i odbierać. Są 3 typy zdarzeń:

Zdarzenia generowane przez serwer

Platforma RBM wysyła zdarzenia, aby powiadamiać agenta o aktualizacjach na poziomie serwera, takich jak data wygaśnięcia wiadomości.

Opcje formatowania i wartości znajdziesz w sekcji ServerEvent.

Wiadomość wygasła; udało się ją unieważnić

Wiadomość wygasła i została unieważniona. Byłoby ono dobrym wyzwalaczem dla zastępczej strategii przesyłania wiadomości.

{
  "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]
}

Wiadomość wygasła; nie udało się unieważnić

Wiadomość wygasła, ale nie została odwołana.

{
  "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]
}

Nie ma gwarancji dostarczenia wiadomości.

  • Jeśli wiadomość została dostarczona, otrzymasz na webhooku zdarzenie DELIVERED.
  • Jeśli wiadomość nie została dostarczona, użyj interfejsu API unieważniania, aby wysłać żądanie unieważnienia.

Jeśli wiadomość jest pilna – na przykład w przypadku hasła jednorazowego lub alertu o oszustwie, najlepiej jest wysłać ją alternatywnym kanałem, np. SMS-em, nawet jeśli spowoduje to zduplikowanie wiadomości.

Zdarzenia generowane przez użytkowników

Tak jak w przypadku wiadomości i sprawdzania możliwości agent otrzymuje zdarzenia użytkownika w formacie JSON.

Opcje formatowania i wartości znajdziesz w sekcji UserEvent.

Użytkownik otrzymuje wiadomość agenta

To zdarzenie oznacza, że wiadomość została dostarczona.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "DELIVERED",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

Użytkownik czyta wiadomość agenta

To zdarzenie oznacza, że wiadomość została otwarta lub potwierdzona.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "READ",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

Użytkownik zaczyna pisać

To zdarzenie oznacza, że użytkownik pisze.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",,
  "agentId": "AGENT_ID"
}

Użytkownik wysyła SMS-a

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "text": "Hi",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

Użytkownik wysyła plik

{
  "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"
}

Użytkownik klika sugerowaną odpowiedź

Gdy użytkownik kliknie sugerowaną odpowiedź, agent otrzyma zdarzenie z danymi wywołania zwrotnego i tekstem tej odpowiedzi.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234",
    "text": "Hello there!"
  }
}

Użytkownik klika sugerowane działanie

Gdy użytkownik kliknie sugerowane działanie, agent otrzyma zdarzenie z danymi wywołania zwrotnego działania.

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234"
  }
}

Zdarzenia wygenerowane przez agenta

Agent wysyła zdarzenia, aby symulować interakcje człowieka i zapewnić użytkownikowi, że wchodzi on w interakcję z jego wiadomościami. U użytkowników wydarzenia są wyświetlane jako powiadomienia w rozmowach.

Opcje formatowania i wartości znajdziesz w sekcji phones.agentEvents.

Agent wysyła zdarzenie READ

Dla użytkowników to wydarzenie jest widoczne jako potwierdzenie odbioru konkretnej wiadomości. Dzięki niemu użytkownik wie, że platforma RBM dostarczyła jego wiadomość, a agent ją przetwarza.

Ten kod wysyła zdarzenie READ w przypadku wiadomości z pasującym elementem messageId.

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);
Ten kod jest fragmentem przykładowego agenta 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");
Ten kod jest fragmentem przykładowego agenta 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)
Ten kod jest fragmentem przykładowego agenta 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");
Ten kod jest fragmentem przykładowego agenta RBM.

Agent wysyła zdarzenie IS_TYPING

Jest ono widoczne dla użytkowników jako wskaźnik pisania i informuje, że pracownik obsługi klienta tworzy wiadomość. Wskaźnik pisania wygasa po krótkim czasie (około 20 sekund) lub po otrzymaniu nowej wiadomości od agenta. Agent może wysyłać wiele zdarzeń IS_TYPING, aby zresetować licznik czasu wygaśnięcia wskaźnika pisania.

Ten kod wysyła zdarzenie 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!');
});
Ten kod jest fragmentem przykładowego agenta 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");
Ten kod jest fragmentem przykładowego agenta 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')
Ten kod jest fragmentem przykładowego agenta 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");
Ten kod jest fragmentem przykładowego agenta RBM.