Dokumentacja interfejsu API — interfejs API Direct Line 1.1
Ważne
Ten artykuł zawiera informacje referencyjne dotyczące interfejsu API Direct Line w wersji 1.1. Jeśli tworzysz nowe połączenie między aplikacją kliencką i botem, zamiast tego użyj interfejsu API Direct Line 3.0.
Możesz umożliwić aplikacji klienckiej komunikowanie się z botem przy użyciu interfejsu API Direct Line 1.1. Direct Line interfejs API 1.1 używa standardowego standardu branżowego REST i JSON za pośrednictwem protokołu HTTPS.
Podstawowy identyfikator URI
Aby uzyskać dostęp do interfejsu API Direct Line 1.1, użyj tego podstawowego identyfikatora URI dla wszystkich żądań interfejsu API:
https://directline.botframework.com
Nagłówki
Oprócz standardowych nagłówków żądań HTTP żądanie interfejsu API Direct Line musi zawierać Authorization
nagłówek określający wpis tajny lub token w celu uwierzytelnienia klienta, który wysyła żądanie. Nagłówek można określić Authorization
przy użyciu schematu "Bearer" lub schematu "BotConnector".
Schemat elementu nośnego:
Authorization: Bearer SECRET_OR_TOKEN
Schemat BotConnector:
Authorization: BotConnector SECRET_OR_TOKEN
Aby uzyskać szczegółowe informacje na temat uzyskiwania wpisu tajnego lub tokenu, którego klient może użyć do uwierzytelniania żądań interfejsu API Direct Line, zobacz Uwierzytelnianie.
Kody stanu HTTP
Kod stanu HTTP zwracany z każdą odpowiedzią wskazuje wynik odpowiedniego żądania.
Kod stanu HTTP | Znaczenie |
---|---|
200 | Żądanie zakończyło się pomyślnie. |
204 | Żądanie zakończyło się pomyślnie, ale nie została zwrócona żadna zawartość. |
400 | Żądanie zostało źle sformułowane lub w inny sposób niepoprawne. |
401 | Klient nie ma autoryzacji do wykonania żądania. Często ten kod stanu występuje, ponieważ brakuje nagłówka Authorization lub jest on źle sformułowany. |
403 | Klient nie może wykonać żądanej operacji. Często ten kod stanu występuje, ponieważ Authorization nagłówek określa nieprawidłowy token lub wpis tajny. |
404 | Nie można odnaleźć żądanego zasobu. Zazwyczaj ten kod stanu wskazuje nieprawidłowy identyfikator URI żądania. |
500 | Wystąpił wewnętrzny błąd serwera w usłudze Direct Line |
502 | Wystąpił błąd w bocie; bot jest niedostępny lub zwraca błąd. Jest to typowy kod błędu. |
Operacje tokenu
Użyj tych operacji, aby utworzyć lub odświeżyć token, którego klient może użyć do uzyskania dostępu do jednej konwersacji.
Operacja | Opis |
---|---|
Generowanie tokenu | Wygeneruj token dla nowej konwersacji. |
Odśwież token | Odśwież token. |
Generowanie tokenu
Generuje token, który jest ważny dla jednej konwersacji.
POST /api/tokens/conversation
Zawartość | Opis |
---|---|
Treść żądania | n/d |
Zwraca | Ciąg reprezentujący token |
Odśwież token
Odświeża token.
GET /api/tokens/{conversationId}/renew
Zawartość | Opis |
---|---|
Treść żądania | n/d |
Zwraca | Ciąg reprezentujący nowy token |
Operacje konwersacji
Użyj tych operacji, aby otworzyć rozmowę z botem i wymieniać komunikaty między klientem a botem.
Operacja | Opis |
---|---|
Rozpocznij konwersację | Otwiera nową konwersację z botem. |
Pobieranie komunikatów | Pobiera komunikaty z bota. |
Wysyłanie wiadomości | Wysyła wiadomość do bota. |
Przekazywanie i wysyłanie plików | Przekazuje i wysyła pliki jako załączniki. |
Rozpocznij konwersację
Otwiera nową konwersację z botem.
POST /api/conversations
Zawartość | Opis |
---|---|
Treść żądania | n/d |
Zwraca | Obiekt konwersacji |
Pobieranie komunikatów
Pobiera komunikaty z bota dla określonej konwersacji.
watermark
Ustaw parametr w identyfikatorze URI żądania, aby wskazać najnowszy komunikat widoczny przez klienta.
GET /api/conversations/{conversationId}/messages?watermark={watermark_value}
Zawartość | Opis |
---|---|
Treść żądania | n/d |
Zwraca | Obiekt MessageSet . Odpowiedź zawiera watermark się jako właściwość MessageSet obiektu. Klienci powinni stronicować dostępne komunikaty, rozwijając watermark wartość, dopóki nie zostaną zwrócone żadne komunikaty. |
Wysyłanie wiadomości
Wysyła wiadomość do bota.
POST /api/conversations/{conversationId}/messages
Zawartość | Opis |
---|---|
Treść żądania | Obiekt Message |
Zwraca | Żadne dane nie są zwracane w treści odpowiedzi. Usługa odpowiada za pomocą kodu stanu HTTP 204, jeśli komunikat został wysłany pomyślnie. Klient może uzyskać wysłany komunikat (wraz z komunikatami wysłanymi przez bota do klienta) przy użyciu operacji Pobierz komunikaty . |
Przekazywanie i wysyłanie plików
Przekazuje i wysyła pliki jako załączniki.
userId
Ustaw parametr w identyfikatorze URI żądania, aby określić identyfikator użytkownika wysyłającego załączniki.
POST /api/conversations/{conversationId}/upload?userId={userId}
Zawartość | Opis |
---|---|
Treść żądania | W przypadku pojedynczego załącznika wypełnij treść żądania zawartością pliku. W przypadku wielu załączników utwórz treść żądania wieloczęściowego, która zawiera jedną część dla każdego załącznika, a także (opcjonalnie) jedną część dla obiektu Message , który powinien służyć jako kontener dla określonych załączników. Aby uzyskać więcej informacji, zobacz Wysyłanie komunikatu do bota. |
Zwraca | Żadne dane nie są zwracane w treści odpowiedzi. Usługa odpowiada za pomocą kodu stanu HTTP 204, jeśli komunikat został wysłany pomyślnie. Klient może uzyskać wysłany komunikat (wraz z komunikatami wysłanymi przez bota do klienta) przy użyciu operacji Pobierz komunikaty . |
Uwaga
Przekazane pliki są usuwane po 24 godzinach.
Schemat
Direct Line schemat 1.1 jest uproszczoną kopią schematu platformy Bot Framework w wersji 1, która zawiera następujące obiekty.
Obiekt komunikatu
Definiuje komunikat wysyłany przez klienta do bota lub odbierany z bota.
Właściwość | Typ | Opis |
---|---|---|
id | ciąg | Identyfikator, który jednoznacznie identyfikuje komunikat (przypisany przez Direct Line). |
identyfikator konwersacji | ciąg | Identyfikator identyfikujący konwersację. |
Utworzone | ciąg | Data i godzina utworzenia komunikatu w formacie ISO-8601. |
Z | ciąg | Identyfikator identyfikujący użytkownika, który jest nadawcą wiadomości. Podczas tworzenia komunikatu klienci powinni ustawić tę właściwość na stabilny identyfikator użytkownika. Mimo że Direct Line przypisze identyfikator użytkownika, jeśli nie zostanie podany żaden, zazwyczaj powoduje to nieoczekiwane zachowanie. |
Tekst | ciąg | Tekst wiadomości wysyłanej od użytkownika do bota lub bota do użytkownika. |
channelData | object | Obiekt zawierający zawartość specyficzną dla kanału. Niektóre kanały udostępniają funkcje, które wymagają dodatkowych informacji, których nie można przedstawić przy użyciu schematu załącznika. W takich przypadkach ustaw tę właściwość na zawartość specyficzną dla kanału zgodnie z definicją w dokumentacji kanału. Te dane są wysyłane niezmodyfikowane między klientem a botem. Ta właściwość musi być ustawiona na obiekt złożony lub pozostawiona pusta. Nie ustawiaj go na ciąg, liczbę lub inny prosty typ. |
Obrazów | ciąg[] | Tablica ciągów zawierających adresy URL obrazów, które zawiera komunikat. W niektórych przypadkach ciągi w tej tablicy mogą być względnymi adresami URL. Jeśli jakikolwiek ciąg w tej tablicy nie rozpoczyna się od ciągu "http" lub "https", przed utworzeniem pełnego adresu URL.https://directline.botframework.com |
Załączniki | Załącznik[] | Tablica obiektów załączników , które reprezentują załączniki niezwiązane z obrazem, które zawiera komunikat. Każdy obiekt w tablicy zawiera url właściwość i contentType właściwość. W komunikatach odbieranych przez klienta z bota url właściwość może czasami określać względny adres URL. W przypadku każdej url wartości właściwości, która nie zaczyna się od ciągu "http" lub "https", należy https://directline.botframework.com wstępnie utworzyć pełny adres URL. |
W poniższym przykładzie pokazano obiekt Message zawierający wszystkie możliwe właściwości. W większości przypadków podczas tworzenia komunikatu klient musi podać from
tylko właściwość i co najmniej jedną właściwość zawartości (na przykład text
, images
, attachments
lub channelData
).
{
"id": "CuvLPID4kDb|000000000000000004",
"conversationId": "CuvLPID4kDb",
"created": "2016-10-28T21:19:51.0357965Z",
"from": "examplebot",
"text": "Hello!",
"channelData": {
"examplefield": "abc123"
},
"images": [
"/attachments/CuvLPID4kDb/0.jpg?..."
],
"attachments": [
{
"url": "https://example.com/example.docx",
"contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
},
{
"url": "https://example.com/example.doc",
"contentType": "application/msword"
}
]
}
MessageSet, obiekt
Definiuje zestaw komunikatów.
Właściwość | Typ | Opis |
---|---|---|
Wiadomości | Komunikat[] | Tablica obiektów Message . |
Znak wodny | ciąg | Maksymalny limit komunikatów w zestawie. Klient może użyć watermark wartości , aby wskazać najnowszy komunikat, który widział podczas pobierania komunikatów z bota. |
Obiekt załącznika
Definiuje załącznik niezwiązany z obrazem.
Właściwość | Typ | Opis |
---|---|---|
Contenttype | ciąg | Typ nośnika zawartości w załączniku. |
Adres url | ciąg | Adres URL zawartości załącznika. |
Obiekt konwersacji
Definiuje Direct Line konwersację.
Właściwość | Typ | Opis |
---|---|---|
identyfikator konwersacji | ciąg | Identyfikator, który jednoznacznie identyfikuje konwersację, dla której określony token jest prawidłowy. |
Tokenu | ciąg | Token, który jest prawidłowy dla określonej konwersacji. |
expires_in | liczba | Liczba sekund do wygaśnięcia tokenu. |
Obiekt błędu
Definiuje błąd.
Właściwość | Typ | Opis |
---|---|---|
Kod | ciąg | Kod błędu. Jedną z następujących wartości: MissingProperty, MalformedData, NotFound, ServiceError, Internal, InvalidRange, NotSupported, NotAllowed, BadCertificate. |
message | ciąg | Opis błędu. |
statusCode | liczba | Kod stanu. |
ErrorMessage, obiekt
Ustandaryzowany ładunek komunikatu.
Właściwość | Typ | Opis |
---|---|---|
Błąd | Błąd | Obiekt Error zawierający informacje o błędzie. |