API-referens – Direct Line API 3.0
Du kan göra så att klientprogrammet kommunicerar med din robot med hjälp av Direct Line API 3.0. Direct Line API 3.0 använder branschstandard-REST och JSON via HTTPS.
Bas-URI
Om du vill komma åt Direct Line API 3.0 använder du någon av dessa bas-URI:er för alla API-begäranden:
För globala robotar använder du
https://directline.botframework.com
För en regional robot anger du följande URI enligt den valda regionen:
Region Bas-URI Europa https://europe.directline.botframework.com
Indien https://india.directline.botframework.com
Dricks
En begäran kan misslyckas om du använder den globala bas-URI:n för en regional robot, eftersom vissa begäranden kan överskrida geografiska gränser.
Sidhuvuden
Förutom standardrubrikerna för HTTP-begäran måste en API-begäran för direktrad innehålla ett Authorization
huvud som anger en hemlighet eller token för att autentisera klienten som utfärdar begäran. Authorization
Ange rubriken med det här formatet:
Authorization: Bearer SECRET_OR_TOKEN
Mer information om hur du hämtar en hemlighet eller token som klienten kan använda för att autentisera sina API-begäranden för direct line finns i Autentisering.
HTTP-statuskoder
HTTP-statuskoden som returneras med varje svar anger resultatet av motsvarande begäran.
HTTP-statuskod | Innebörd |
---|---|
200 | Begäran lyckades. |
201 | Begäran lyckades. |
202 | Begäran har godkänts för bearbetning. |
204 | Begäran lyckades men inget innehåll returnerades. |
400 | Begäran var felaktigt eller på annat sätt felaktig. |
401 | Klienten har inte behörighet att göra begäran. Ofta inträffar den här statuskoden eftersom Authorization rubriken saknas eller är felaktigt formaterad. |
403 | Klienten kan inte utföra den begärda åtgärden. Åtgärden kan misslyckas av följande skäl.
|
404 | Den begärda resursen hittades inte. Den här statuskoden anger vanligtvis en ogiltig URI för begäran. |
500 | Ett internt serverfel uppstod i direct line-tjänsten. |
502 | Roboten är inte tillgänglig eller returnerade ett fel. Det här är en vanlig felkod. |
Kommentar
HTTP-statuskod 101 används i WebbSocket-anslutningssökvägen, även om detta troligen hanteras av WebSocket-klienten.
Fel
Alla svar som anger en HTTP-statuskod i intervallet 4xx eller 5xx innehåller ett ErrorResponse-objekt i brödtexten i svaret som innehåller information om felet. Om du får ett felsvar i 4xx-intervallet kontrollerar du ErrorResponse-objektet för att identifiera orsaken till felet och lösa problemet innan du skickar begäran igen.
Kommentar
HTTP-statuskoder och värden som anges i code
egenskapen i ErrorResponse-objektet är stabila. Värden som anges i message
egenskapen i ErrorResponse-objektet kan ändras över tid.
Följande kodfragment visar en exempelbegäran och det resulterande felsvaret.
Begär
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"
}
}
Tokenåtgärder
Använd dessa åtgärder för att skapa eller uppdatera en token som en klient kan använda för att komma åt en enda konversation.
Operation | beskrivning |
---|---|
Generera token | Generera en token för en ny konversation. |
Uppdateringstoken | Uppdatera en token. |
Generera token
Genererar en token som är giltig för en konversation.
POST /v3/directline/tokens/generate
Innehåll | beskrivning |
---|---|
Begärandetext | Ett TokenParameters-objekt |
Returer | Ett konversationsobjekt |
Uppdateringstoken
Uppdaterar token.
POST /v3/directline/tokens/refresh
Innehåll | beskrivning |
---|---|
Begärandetext | saknas |
Returer | Ett konversationsobjekt |
Konversationsåtgärder
Använd dessa åtgärder för att öppna en konversation med din robot och utbyta aktiviteter mellan klient och robot.
Operation | beskrivning |
---|---|
Starta konversation | Öppnar en ny konversation med roboten. |
Hämta konversationsinformation | Hämtar information om en befintlig konversation. Den här åtgärden genererar en ny Url för WebSocket-dataström som en klient kan använda för att återansluta till en konversation. |
Hämta aktiviteter | Hämtar aktiviteter från roboten. |
Skicka en aktivitet | Skickar en aktivitet till roboten. |
Ladda upp och skicka filer | Laddar upp och skickar filer som bifogade filer. |
Starta konversation
Öppnar en ny konversation med roboten.
POST /v3/directline/conversations
Innehåll | beskrivning |
---|---|
Begärandetext | Ett TokenParameters-objekt |
Returer | Ett konversationsobjekt |
Hämta konversationsinformation
Hämtar information om en befintlig konversation och genererar även en ny WebSocket-ström-URL som en klient kan använda för att återansluta till en konversation. Du kan också ange parametern watermark
i begärande-URI:n för att ange det senaste meddelandet som visas av klienten.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
Innehåll | beskrivning |
---|---|
Begärandetext | saknas |
Returer | Ett konversationsobjekt |
Hämta aktiviteter
Hämtar aktiviteter från roboten för den angivna konversationen. Du kan också ange parametern watermark
i begärande-URI:n för att ange det senaste meddelandet som visas av klienten.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
Innehåll | beskrivning |
---|---|
Begärandetext | saknas |
Returer | Ett ActivitySet-objekt . Svaret innehåller watermark som en egenskap för ActivitySet objektet. Klienter bör gå igenom de tillgängliga aktiviteterna watermark genom att flytta fram värdet tills inga aktiviteter returneras. |
Skicka en aktivitet
Skickar en aktivitet till roboten.
POST /v3/directline/conversations/{conversationId}/activities
Innehåll | beskrivning |
---|---|
Begärandetext | Ett aktivitetsobjekt |
Returer | En ResourceResponse som innehåller en id egenskap som anger ID för aktiviteten som skickades till roboten. |
Ladda upp och skicka filer
Laddar upp och skickar filer som bifogade filer. Ange parametern userId
i begärande-URI:n för att ange ID för den användare som skickar de bifogade filerna.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
Innehåll | beskrivning |
---|---|
Begärandetext | Fyll i begärandetexten med filinnehållet för en enda bifogad fil. För flera bifogade filer skapar du en brödtext för begäranden med flera delar som innehåller en del för varje bifogad fil, och även (valfritt) en del för aktivitetsobjektet som ska fungera som container för de angivna bifogade filerna. Mer information finns i Skicka en aktivitet till roboten. |
Returer | En ResourceResponse som innehåller en id egenskap som anger ID för aktiviteten som skickades till roboten. |
Kommentar
Uppladdade filer tas bort efter 24 timmar.
Schema
Direct Line 3.0-schemat innehåller alla objekt som definieras av Bot Framework-schemat samt vissa objekt som är specifika för Direct Line.
ActivitySet-objekt
Definierar en uppsättning aktiviteter.
Property | Type | Beskrivning |
---|---|---|
Aktiviteter | Aktivitet[] | Matris med aktivitetsobjekt. |
Vattenstämpel | sträng | Maximal vattenstämpel för aktiviteter i uppsättningen. En klient kan använda watermark värdet för att ange det senaste meddelandet som den har sett när den hämtar aktiviteter från roboten eller när en ny WebSocket-ström-URL genereras. |
Konversationsobjekt
Definierar en direktradskonversation.
Property | Type | Beskrivning |
---|---|---|
conversationId | sträng | ID som unikt identifierar konversationen som den angivna token är giltig för. |
Etag | sträng | En HTTP ETag (entitetstagg). |
expires_in | Nummer | Antal sekunder tills token upphör att gälla. |
referenceGrammarId | sträng | ID för referens grammatik för den här roboten. |
streamUrl | sträng | URL för konversationens meddelandeström. |
Token | sträng | Token som är giltig för den angivna konversationen. |
TokenParameters-objekt
Parametrar för att skapa en token.
Property | Type | Beskrivning |
---|---|---|
Etag | sträng | En HTTP ETag (entitetstagg). |
trustedOrigins | string[] | Betrott ursprung som ska bäddas in i token. |
användare | ChannelAccount | Användarkonto som ska bäddas in i token. |
Aktiviteter
För varje aktivitet som en klient tar emot från en robot via Direct Line:
- Bifogade kort bevaras.
- URL:er för uppladdade bifogade filer är dolda med en privat länk.
- Egenskapen
channelData
bevaras utan ändringar.
Klienter kan ta emot flera aktiviteter från roboten som en del av en ActivitySet.
När en klient skickar en Activity
till en robot via Direct Line:
- Egenskapen
type
anger vilken typaktivitet den skickar (vanligtvis meddelande). - Egenskapen
from
måste fyllas i med ett användar-ID som väljs av klienten. - Bifogade filer kan innehålla URL:er till befintliga resurser eller URL:er som laddats upp via slutpunkten för direktradsbilagor.
- Egenskapen
channelData
bevaras utan ändringar. - Aktivitetens totala storlek, när den serialiseras till JSON och krypteras, får inte överstiga 256 000 tecken. Vi rekommenderar att du behåller aktiviteter under 150 000. Om du behöver mer data kan du överväga att dela upp aktiviteten eller använda bifogade filer.
Klienter kan skicka en enskild aktivitet per begäran.