Odbieranie wiadomości

Agenty RBM otrzymują wiadomości i informacje o zdarzeniach za pomocą webhooka. Gdy użytkownik wyśle wiadomość do Twojego agenta, usługa RBM Google wyśle ją do skonfigurowanego webhooka. Twój agent może następnie zdekodować wiadomość, przetworzyć ją i wysłać odpowiedź do użytkownika.

Użytkownik wysyła wiadomość do agenta.

Użytkownicy mogą wysyłać dowolny tekst, lokalizacje lub pliki, na które pozwala klient RCS. Twój agent musi obsługiwać dowolny tekst, lokalizacje lub pliki, które użytkownik może wysłać, a także wszelkie stany błędów, które mogą wywołać te wiadomości.

Aby dowiedzieć się, jak agent może obsługiwać potwierdzenia dostarczenia, potwierdzenia odbioru i wskaźniki pisania, przeczytaj artykuł Odbieranie zdarzeń.

Obsługa wiadomości przychodzących

Sposób, w jaki agent obsługuje wiadomości od użytkowników i na nie odpowiada, zależy w dużej mierze od logiki biznesowej. Ogólnie jednak kroki, które należy wykonać, aby odpowiedzieć na wiadomość użytkownika, są spójne.

Krok 1. Określ typ wiadomości wysłanej przez użytkownika

Użytkownicy mogą wysyłać 4 typy wiadomości:

  • Wiadomości tekstowe to odpowiedzi w dowolnej formie.
  • Wiadomości z sugestiami zawierają dane postback i tekst sugerowanej czynności lub sugerowanej odpowiedzi, którą kliknął użytkownik.
  • Wiadomości o lokalizacji zawierają wartości szerokości i długości geograficznej.

  • Wiadomości z plikami zawierają URI pliku i powiązane dane.

Krok 2. Przetwórz treść wiadomości

Treść wiadomości użytkownika powinna kierować logiką agenta i kolejną odpowiedzią w rozmowie.

Najłatwiejszym sposobem na określenie intencji użytkownika jest użycie danych postback z sugerowanej odpowiedzi lub sugerowanej czynności. Niezależnie od tekstu powiązanego z sugestią dane postback są czytelne dla komputera.

Jeśli użytkownik wyśle wiadomość tekstową, agent może przeanalizować odpowiedź pod kątem obsługiwanych słów kluczowych lub użyć NLU (np. Dialogflow), aby przetworzyć wiadomość użytkownika i określić dalszy sposób postępowania.

Wiadomości o lokalizacji i plikach nie zawierają tekstu ani danych postback, dlatego przed odpowiedzią agent powinien wziąć pod uwagę kontekst rozmowy i ostatnie wiadomości.

Jeśli agent nie wie, jak odpowiedzieć na wiadomość użytkownika, powinien odpowiedzieć stanem błędu i spróbować kontynuować rozmowę, prosząc użytkownika o dodatkowe informacje, prosząc o dane w inny sposób lub wyświetlając sugerowane odpowiedzi i sugerowane czynności, na które agent wie, jak odpowiedzieć.

Krok 3. Zrealizuj logikę biznesową interakcji

Gdy agent określi prawidłową odpowiedź na wiadomość użytkownika, zbierze niezbędne informacje z Twojej infrastruktury i w razie potrzeby nawiąże kontakt z innymi systemami, aby zrealizować logikę biznesową interakcji.

Krok 4. Odpowiedz użytkownikowi

Gdy agent zrealizuje logikę biznesową interakcji, wyśle kolejną wiadomość i będzie kontynuować rozmowę z użytkownikiem.

Przykłady

Poniższy kod pokazuje, jak agent odbiera wiadomości. Informacje o formatowaniu i wartościach znajdziesz w UserMessage.

Agent odbiera tekst

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "text": "Hello, world!"
}

Agent odbiera wiadomość z sugestii

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "suggestionResponse": {
    "postbackData": "suggestion_1",
    "text": "Suggestion #1"
  }
}

Agent odbiera lokalizację

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "location": {
    "latitude": 37.422000,
    "longitude": -122.084056
  }
}

Agent odbiera plik

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "thumbnail": {
      "mimeType": "image/jpeg",
      "fileSizeBytes": 1280,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8",
      "fileName": "4_animated.jpeg"
    },
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  }
}