메시지와 이벤트를 전송하고 수신하는 것은 에이전트와 사용자 간의 통신의 핵심 요소입니다. 에이전트는 HTTP POST 요청을 통해 RBM API로 사용자에게 메시지, 이벤트, 요청을 전송하지만 Cloud Pub/Sub에서 JSON으로 사용자 생성 메시지와 이벤트를 수신합니다.
다음은 샘플 데이터를 사용하여 메시지, 이벤트, 요청을 통해 유용하고 의미 있는 상호작용을 만드는 방법을 보여주는 대화 흐름의 예입니다.
안녕하세요.
이 예시에서 에이전트는 Hello, World!
를 사용자에게 메시지로 전송하고 사용자는 Hello to you!
로 응답합니다.
에이전트가 기능 확인 요청을 전송하여 사용자의 기기가 RBM을 지원하는지 확인합니다.
상담사가 다음을 전송합니다.
GET /v1/phones/+12223334444/capabilities?requestId=147547143069602483572 HTTP/1.1 Host: us-rcsbusinessmessaging.googleapis.com Content-Type: application/json
RBM 플랫폼은 사용자 기기가 RBM 메시지를 수신할 수 있음을 나타내는 기능 확인 응답을 상담사에게 보냅니다.
상담사에게 다음 정보가 제공됩니다.
{ "rbmEnabled": true, "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION" ] }
에이전트가
Hello, World!
메시지를 RBM API로 보내면 RBM API는 사용자 기기에 메시지를 전달합니다.상담사가 다음을 전송합니다.
POST /v1/phones/+12223334444/agentMessages?messageId=123 HTTP/1.1 Host: us-rcsbusinessmessaging.googleapis.com Content-Type: application/json { "contentMessage": { "text": "Hello, World!", } }
RBM 플랫폼은 사용자 기기에 메시지를 전송하고 에이전트에
DELIVERED
이벤트를 전송합니다.상담사에게 다음 정보가 제공됩니다.
{ "senderPhoneNumber": "+12223334444", "eventType": "DELIVERED", "eventId": "Ms6oOiEli6QS-fe8QFrmhfIg", "messageId": "123" }
사용자가 기기에서 메시지를 열어
READ
이벤트를 에이전트에 보냅니다.상담사에게 다음 정보가 제공됩니다.
{ "senderPhoneNumber": "+12223334444", "eventType": "READ", "eventId": "Ms6oOiEli6QS-ge9ZFsmgTj", "messageId": "123" }
사용자가 작성하고 사용자에게 답장을 보냅니다.
상담사에게 다음 정보가 제공됩니다.
{ "senderPhoneNumber": "+12223334444", "messageId": "msg000999888777a", "sendTime": "2018-12-31T15:01:23.045123456Z", "text": "Hello to you!", }
RBM 플랫폼은 사용자 메시지를 수신할 때 사용자 기기에
DELIVERED
이벤트를 자동으로 전송합니다.에이전트는 사용자의 메시지에 대한 응답으로
READ
이벤트를 전송하여 수신 및 확인되었음을 알립니다.상담사가 다음을 전송합니다.
{ "eventType": "READ", "messageId": "msg000999888777a" }