Referenční informace k rozhraní API – rozhraní API Direct Line 3.0
Klientskou aplikaci můžete povolit komunikaci s robotem pomocí rozhraní DIRECT Line API 3.0. Rozhraní API Direct Line 3.0 používá standardní rozhraní REST a JSON přes HTTPS.
Základní identifikátor URI
Pro přístup k rozhraní API Direct Line 3.0 použijte jednu z těchto základních identifikátorů URI pro všechny požadavky rozhraní API:
Pro globální roboty použijte
https://directline.botframework.com
V případě místního robota zadejte následující identifikátor URI podle vybrané oblasti:
Oblast Základní identifikátor URI Evropě https://europe.directline.botframework.com
Indie https://india.directline.botframework.com
Tip
Požadavek může selhat, pokud pro místního robota použijete globální základní identifikátor URI, protože některé požadavky můžou přesahovat geografické hranice.
Hlavičky
Kromě standardních hlaviček požadavků HTTP musí požadavek rozhraní API direct line obsahovat hlavičku Authorization
, která určuje tajný klíč nebo token pro ověření klienta, který požadavek vydává. Authorization
Zadejte záhlaví pomocí tohoto formátu:
Authorization: Bearer SECRET_OR_TOKEN
Podrobnosti o tom, jak získat tajný kód nebo token, který může váš klient použít k ověření požadavků rozhraní API direct line, najdete v tématu Ověřování.
Stavové kódy HTTP
Stavový kód HTTP vrácený s každou odpovědí označuje výsledek odpovídajícího požadavku.
Kód stavu HTTP | Význam |
---|---|
200 | Požadavek byl úspěšný. |
201 | Požadavek byl úspěšný. |
202 | Žádost byla přijata ke zpracování. |
204 | Požadavek byl úspěšný, ale nebyl vrácen žádný obsah. |
400 | Požadavek byl poškozený nebo jinak nesprávný. |
401 | Klient nemá oprávnění k provedení žádosti. K tomuto stavovém kódu často dochází, protože Authorization záhlaví chybí nebo je poškozené. |
403 | Klient nemůže provést požadovanou operaci. Operace může selhat z následujících důvodů.
|
404 | Požadovaný prostředek nebyl nalezen. Tento stavový kód obvykle označuje neplatný identifikátor URI požadavku. |
500 | Ve službě Direct Line došlo k vnitřní chybě serveru. |
502 | Robot není k dispozici nebo vrátil chybu. Toto je běžný kód chyby. |
Poznámka:
Stavový kód HTTP 101 se používá v cestě připojení WebSocket, i když to pravděpodobně zpracovává váš klient WebSocket.
Chyby
Každá odpověď, která určuje stavový kód HTTP v rozsahu 4xx nebo 5xx, bude obsahovat objekt ErrorResponse v těle odpovědi, který poskytuje informace o chybě. Pokud se v oblasti 4xx zobrazí chybová odpověď, zkontrolujte objekt ErrorResponse a zjistěte příčinu chyby a vyřešte problém před opětovným odesláním požadavku.
Poznámka:
Stavové kódy a hodnoty HTTP zadané ve code
vlastnosti uvnitř ErrorResponse objektu jsou stabilní. Hodnoty zadané v message
vlastnosti Uvnitř ErrorResponse objektu se mohou v průběhu času měnit.
Následující fragmenty kódu ukazují příklad požadavku a výslednou chybovou odpověď.
Požádat
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Response
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Operace s tokeny
Pomocí těchto operací můžete vytvořit nebo aktualizovat token, který může klient použít pro přístup k jedné konverzaci.
Operation | Popis |
---|---|
Generování tokenu | Vygenerujte token pro novou konverzaci. |
Obnovovací token | Aktualizujte token. |
Generování tokenu
Vygeneruje token, který je platný pro jednu konverzaci.
POST /v3/directline/tokens/generate
Obsah | Popis |
---|---|
Text požadavku | Objekt TokenParameters |
Vrácení | Objekt Konverzace |
Obnovovací token
Aktualizuje token.
POST /v3/directline/tokens/refresh
Obsah | Popis |
---|---|
Text požadavku | Není k dispozici |
Vrácení | Objekt Konverzace |
Operace konverzací
Pomocí těchto operací můžete otevřít konverzaci s robotem a vyměňovat si aktivity mezi klientem a robotem.
Operation | Popis |
---|---|
Zahájit konverzaci | Otevře novou konverzaci s robotem. |
Získání informací o konverzaci | Získá informace o existující konverzaci. Tato operace vygeneruje novou adresu URL streamu WebSocket, kterou může klient použít k opětovnému připojení ke konverzaci. |
Získání aktivit | Načte aktivity z robota. |
Odeslání aktivity | Odešle aktivitu robotovi. |
Nahrání a odeslání souborů | Nahraje a odešle soubory jako přílohy. |
Zahájit konverzaci
Otevře novou konverzaci s robotem.
POST /v3/directline/conversations
Obsah | Popis |
---|---|
Text požadavku | Objekt TokenParameters |
Vrácení | Objekt Konverzace |
Získání informací o konverzaci
Získá informace o existující konverzaci a také vygeneruje novou adresu URL streamu WebSocket, kterou klient může použít k opětovnému připojení ke konverzaci. Volitelně můžete do identifikátoru watermark
URI požadavku zadat parametr, který označuje poslední zprávu zobrazenou klientem.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
Obsah | Popis |
---|---|
Text požadavku | Není k dispozici |
Vrácení | Objekt Konverzace |
Získání aktivit
Načte aktivity z robota pro zadanou konverzaci. Volitelně můžete do identifikátoru watermark
URI požadavku zadat parametr, který označuje poslední zprávu zobrazenou klientem.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
Obsah | Popis |
---|---|
Text požadavku | Není k dispozici |
Vrácení | Objekt ActivitySet . Odpověď obsahuje watermark jako vlastnost objektu ActivitySet . Klienti by měli procházet dostupné aktivity tím, že hodnotu posunou watermark , dokud se nevrátí žádné aktivity. |
Odeslání aktivity
Odešle aktivitu robotovi.
POST /v3/directline/conversations/{conversationId}/activities
Obsah | Popis |
---|---|
Text požadavku | Objekt Aktivity |
Vrácení | A ResourceResponse , která obsahuje id vlastnost, která určuje ID aktivity, která byla odeslána robotovi. |
Nahrání a odeslání souborů
Nahraje a odešle soubory jako přílohy. userId
Nastavte parametr v identifikátoru URI požadavku tak, aby určil ID uživatele, který odesílá přílohy.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
Obsah | Popis |
---|---|
Text požadavku | U jedné přílohy naplňte text požadavku obsahem souboru. Pro více příloh vytvořte text žádosti s více částmi, který obsahuje jednu část pro každou přílohu, a také (volitelně) jednu část pro objekt Aktivity , který by měl sloužit jako kontejner pro zadané přílohy. Další informace najdete v tématu Odeslání aktivity robotovi. |
Vrácení | A ResourceResponse , která obsahuje id vlastnost, která určuje ID aktivity, která byla odeslána robotovi. |
Poznámka:
Nahrané soubory se odstraní po 24 hodinách.
Schéma
Schéma Direct Line 3.0 zahrnuje všechny objekty, které jsou definovány schématem služby Bot Framework, a také některé objekty specifické pro Direct Line.
Objekt ActivitySet
Definuje sadu aktivit.
Vlastnost | Type | Popis |
---|---|---|
Činnosti | Aktivita[] | Pole objektů aktivity. |
Vodoznak | string | Maximální mez aktivit v rámci sady Klient může použít watermark hodnotu k označení nejnovější zprávy, kterou se zobrazila při načítání aktivit z robota nebo při generování nové adresy URL streamu WebSocket. |
Objekt konverzace
Definuje konverzaci direct line.
Vlastnost | Type | Popis |
---|---|---|
conversationId | string | ID, které jednoznačně identifikuje konverzaci, pro kterou je zadaný token platný. |
Etag | string | Značka ETag PROTOKOLU HTTP (značka entity). |
expires_in | Číslo | Počet sekund do vypršení platnosti tokenu |
referenceGrammarId | string | ID referenční gramatiky pro tohoto robota. |
streamUrl | string | Adresa URL streamu zpráv konverzace |
Token | string | Token, který je platný pro zadanou konverzaci. |
TokenParameters – objekt
Parametry pro vytvoření tokenu
Vlastnost | Type | Popis |
---|---|---|
Etag | string | Značka ETag PROTOKOLU HTTP (značka entity). |
trustedOrigins | string[] | Důvěryhodné zdroje pro vložení do tokenu. |
Uživatel | ChannelAccount | Uživatelský účet pro vložení do tokenu |
Aktivity
Pro každou aktivitu , kterou klient obdrží od robota přes Direct Line:
- Zachovají se karty příloh.
- Adresy URL pro nahrané přílohy jsou skryté pomocí privátního odkazu.
- Vlastnost
channelData
se zachová beze změny.
Klienti můžou od robota přijímat více aktivit jako součást sady aktivit.
Když klient odešle robotovi přes Activity
Direct Line:
- Vlastnost
type
určuje aktivitu typu, kterou odesílá (obvykle zpráva). - Vlastnost
from
musí být vyplněna ID uživatele zvoleného klientem. - Přílohy můžou obsahovat adresy URL pro existující prostředky nebo adresy URL nahrané prostřednictvím koncového bodu přílohy direct line.
- Vlastnost
channelData
se zachová beze změny. - Celková velikost aktivity při serializaci do formátu JSON a zašifrování nesmí překročit 256 tisíc znaků. Doporučujeme udržovat aktivity pod 150 tisíc. Pokud potřebujete více dat, zvažte rozdělení aktivity nahoru nebo použití příloh.
Klienti můžou posílat jednu aktivitu na požadavek.