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