Flussi di conversazione

L'invio e la ricezione di messaggi ed eventi sono gli aspetti principali della comunicazione tra un agente e un utente. Gli agenti inviano messaggi, eventi e richieste agli utenti tramite richieste POST HTTP all'API RBM, ma ricevono messaggi ed eventi creati dall'utente in formato JSON da Cloud Pub/Sub.

Di seguito è riportato un flusso di conversazione di esempio che utilizza dati di esempio per illustrare come messaggi, eventi e richieste possono creare interazioni utili e significative.

Un saluto da Google!

Una conversazione di base tra un agente e un utente.

In questo esempio, l'agente invia Hello, World! come messaggio all'utente e quest'ultimo risponde con Hello to you!.

Diagramma di sequenze di un messaggio inviato da un agente e una risposta da un utente.

  1. L'agente invia una richiesta di controllo delle funzionalità per verificare che il dispositivo dell'utente supporti la funzionalità RBM.

    L'agente invia:

    GET
    /v1/phones/+12223334444/capabilities?requestId=147547143069602483572
    HTTP/1.1
    Host: us-rcsbusinessmessaging.googleapis.com
    Content-Type: application/json
  2. La piattaforma RBM invia all'agente una risposta di controllo della funzionalità che indica che il dispositivo dell'utente può ricevere messaggi RBM.

    L'agente riceve:

    {
      "rbmEnabled": true,
      "features": [
        "REVOCATION",
        "RICHCARD_STANDALONE",
        "RICHCARD_CAROUSEL",
        "ACTION_CREATE_CALENDAR_EVENT",
        "ACTION_DIAL",
        "ACTION_OPEN_URL",
        "ACTION_SHARE_LOCATION",
        "ACTION_VIEW_LOCATION"
       ]
    }
  3. L'agente invia il messaggio Hello, World! all'API RBM, che lo trasmette al dispositivo dell'utente.

    L'agente invia:

    POST
    /v1/phones/+12223334444/agentMessages?messageId=123
    HTTP/1.1
    Host: us-rcsbusinessmessaging.googleapis.com
    Content-Type: application/json
    {
      "contentMessage": {
        "text": "Hello, World!",
      }
    }
  4. La piattaforma RBM invia il messaggio al dispositivo dell'utente e invia un evento DELIVERED all'agente.

    L'agente riceve:

    {
      "senderPhoneNumber": "+12223334444",
      "eventType": "DELIVERED",
      "eventId": "Ms6oOiEli6QS-fe8QFrmhfIg",
      "messageId": "123"
    }
  5. L'utente apre il messaggio sul proprio dispositivo, che invia un evento READ all'agente.

    L'agente riceve:

    {
      "senderPhoneNumber": "+12223334444",
      "eventType": "READ",
      "eventId": "Ms6oOiEli6QS-ge9ZFsmgTj",
      "messageId": "123"
    }
  6. L'utente scrive e invia una risposta all'agente.

    L'agente riceve:

    {
      "senderPhoneNumber": "+12223334444",
      "messageId": "msg000999888777a",
      "sendTime": "2018-12-31T15:01:23.045123456Z",
      "text": "Hello to you!",
    }
  7. La piattaforma RBM invia automaticamente al dispositivo dell'utente un evento DELIVERED quando riceve il messaggio dell'utente.

  8. L'agente invia un evento READ in risposta al messaggio dell'utente per informarlo che è stato ricevuto e confermato.

    L'agente invia:

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