대화 흐름

메시지와 이벤트를 전송하고 수신하는 것은 에이전트와 사용자 간의 통신의 핵심 요소입니다. 에이전트는 HTTP POST 요청을 통해 RBM API로 사용자에게 메시지, 이벤트, 요청을 전송하지만 Cloud Pub/Sub에서 JSON으로 사용자 생성 메시지와 이벤트를 수신합니다.

다음은 샘플 데이터를 사용하여 메시지, 이벤트, 요청을 통해 유용하고 의미 있는 상호작용을 만드는 방법을 보여주는 대화 흐름의 예입니다.

안녕하세요.

상담사와 사용자 간의 기본적인 대화입니다.

이 예시에서 에이전트는 Hello, World!를 사용자에게 메시지로 전송하고 사용자는 Hello to you!로 응답합니다.

상담사의 메시지 및 사용자의 응답에 대한 다이어그램 다이어그램

  1. 에이전트가 기능 확인 요청을 전송하여 사용자의 기기가 RBM을 지원하는지 확인합니다.

    상담사가 다음을 전송합니다.

    GET
    /v1/phones/+12223334444/capabilities?requestId=147547143069602483572
    HTTP/1.1
    Host: us-rcsbusinessmessaging.googleapis.com
    Content-Type: application/json
  2. 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"
       ]
    }
  3. 에이전트가 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!",
      }
    }
  4. RBM 플랫폼은 사용자 기기에 메시지를 전송하고 에이전트에 DELIVERED 이벤트를 전송합니다.

    상담사에게 다음 정보가 제공됩니다.

    {
      "senderPhoneNumber": "+12223334444",
      "eventType": "DELIVERED",
      "eventId": "Ms6oOiEli6QS-fe8QFrmhfIg",
      "messageId": "123"
    }
  5. 사용자가 기기에서 메시지를 열어 READ 이벤트를 에이전트에 보냅니다.

    상담사에게 다음 정보가 제공됩니다.

    {
      "senderPhoneNumber": "+12223334444",
      "eventType": "READ",
      "eventId": "Ms6oOiEli6QS-ge9ZFsmgTj",
      "messageId": "123"
    }
  6. 사용자가 작성하고 사용자에게 답장을 보냅니다.

    상담사에게 다음 정보가 제공됩니다.

    {
      "senderPhoneNumber": "+12223334444",
      "messageId": "msg000999888777a",
      "sendTime": "2018-12-31T15:01:23.045123456Z",
      "text": "Hello to you!",
    }
  7. RBM 플랫폼은 사용자 메시지를 수신할 때 사용자 기기에 DELIVERED 이벤트를 자동으로 전송합니다.

  8. 에이전트는 사용자의 메시지에 대한 응답으로 READ 이벤트를 전송하여 수신 및 확인되었음을 알립니다.

    상담사가 다음을 전송합니다.

    {
      "eventType": "READ",
      "messageId": "msg000999888777a"
    }