Udostępnij za pośrednictwem


Odbieranie komunikatów z bota w interfejsie API Direct Line 1.1

Ważne

W tym artykule opisano sposób odbierania komunikatów z bota przy użyciu interfejsu API Direct Line 1.1. Jeśli tworzysz nowe połączenie między aplikacją kliencką a botem, zamiast tego użyj interfejsu API Direct Line 3.0.

Korzystając z protokołu Direct Line 1.1, klienci muszą sondować interfejs w celu odbierania HTTP GET komunikatów.

Pobieranie komunikatów za pomocą polecenia HTTP GET

Aby pobrać komunikaty dla określonej konwersacji, wydaj GET żądanie do api/conversations/{conversationId}/messages punktu końcowego, opcjonalnie określając watermark parametr w celu wskazania najnowszego komunikatu widocznego przez klienta. Zaktualizowana watermark wartość zostanie zwrócona w odpowiedzi JSON, nawet jeśli nie zostaną uwzględnione żadne komunikaty.

Poniższe fragmenty kodu zawierają przykład żądania Pobierania komunikatów i odpowiedzi. Odpowiedź Pobierz komunikaty zawiera watermark wartość właściwości MessageSet. Klienci powinni stronicować dostępne komunikaty, rozwijając watermark wartość, dopóki nie zostaną zwrócone żadne komunikaty.

Żądanie

GET https://directline.botframework.com/api/conversations/abc123/messages?watermark=0001a-94
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

Reakcja

HTTP/1.1 200 OK
[other headers]
{
    "messages": [
        {
            "conversation": "abc123",
            "id": "abc123|0000",
            "text": "hello",
            "from": "user1"
        }, 
        {
            "conversation": "abc123",
            "id": "abc123|0001",
            "text": "Nice to see you, user1!",
            "from": "bot1"
        }
    ],
    "watermark": "0001a-95"
}

Zagadnienia dotyczące chronometrażu

Mimo że Direct Line jest wieloczęściowym protokołem z potencjalnymi przerwami w czasie, protokół i usługa została zaprojektowana tak, aby ułatwić tworzenie niezawodnego klienta. Właściwość watermark , która jest wysyłana w odpowiedzi Pobierz komunikaty, jest niezawodna. Klient nie przegapi żadnych komunikatów, o ile odtwarza znak wodny dosłowny.

Klienci powinni wybrać interwał sondowania zgodny z ich zamierzonym użyciem.

  • Aplikacje typu service-to-service często używają interwału sondowania 5s lub 10s.

  • Aplikacje klienckie często używają interwału sondowania 1s i wystawiają dodatkowe żądanie ~300 ms po każdym komunikacie wysyłanym przez klienta (aby szybko pobrać odpowiedź bota). To opóźnienie 300 ms powinno być dostosowane na podstawie szybkości i czasu tranzytu bota.

Dodatkowe zasoby