API-verwijzing - Direct Line API 3.0

U kunt uw clienttoepassing inschakelen om met uw bot te communiceren met behulp van Direct Line API 3.0. Direct Line API 3.0 maakt gebruik van industriestandaard REST en JSON via HTTPS.

Basis-URI

Voor toegang tot Direct Line API 3.0 gebruikt u een van deze basis-URI's voor alle API-aanvragen:

  • Voor globale bots gebruikt u https://directline.botframework.com

  • Voer voor een regionale bot de volgende URI in volgens de geselecteerde regio:

    Region Basis-URI
    Europe https://europe.directline.botframework.com
    India https://india.directline.botframework.com

Tip

Een aanvraag kan mislukken als u de globale basis-URI voor een regionale bot gebruikt, omdat sommige aanvragen buiten geografische grenzen kunnen vallen.

Headers

Naast de standaard HTTP-aanvraagheaders moet een Direct Line API-aanvraag een Authorization header bevatten waarmee een geheim of token wordt opgegeven om de client te verifiëren die de aanvraag uitgeeft. Geef de Authorization header op met behulp van deze indeling:

Authorization: Bearer SECRET_OR_TOKEN

Zie Verificatie voor meer informatie over het verkrijgen van een geheim of token dat uw client kan gebruiken om de Direct Line API-aanvragen te verifiëren.

HTTP-statuscodes

De HTTP-statuscode die met elk antwoord wordt geretourneerd, geeft het resultaat van de bijbehorende aanvraag aan.

HTTP-statuscode Meaning
200 Het verzoek slaagde.
201 Het verzoek slaagde.
202 Het verzoek is geaccepteerd voor verwerking.
204 De aanvraag is voltooid, maar er is geen inhoud geretourneerd.
400 De aanvraag is onjuist of anderszins onjuist.
401 De client is niet gemachtigd om de aanvraag te doen. Deze statuscode treedt vaak op omdat de Authorization header ontbreekt of onjuist is ingedeeld.
403 De client mag de aangevraagde bewerking niet uitvoeren. De bewerking kan om de volgende redenen mislukken.
  • Een ongeldig token: wanneer de aanvraag een token gebruikt dat eerder geldig was, maar is verlopen, wordt de code eigenschap van de fout die wordt geretourneerd in het object ErrorResponse ingesteld TokenExpiredop .
  • Een schending van de gegevensgrens: als uw bot een regionale bot is, maar de basis-URI niet regionaal is, kunnen sommige aanvragen buiten geografische grenzen gaan.
  • Een ongeldige doelresource: de doelbot of -site is ongeldig of is verwijderd.
404 De aangevraagde resource is niet gevonden. Deze statuscode geeft doorgaans een ongeldige aanvraag-URI aan.
500 Er is een interne serverfout opgetreden in de Direct Line-service.
502 De bot is niet beschikbaar of er is een fout geretourneerd. Dit is een veelvoorkomende foutcode.

Note

HTTP-statuscode 101 wordt gebruikt in het webSocket-verbindingspad, hoewel dit waarschijnlijk wordt verwerkt door uw WebSocket-client.

Fouten

Elk antwoord dat een HTTP-statuscode in het bereik 4xx of 5xx opgeeft, bevat een ErrorResponse-object in de hoofdtekst van het antwoord dat informatie over de fout bevat. Als u een foutbericht ontvangt in het bereik 4xx, inspecteert u het object ErrorResponse om de oorzaak van de fout te identificeren en het probleem op te lossen voordat u de aanvraag opnieuw indient.

Note

HTTP-statuscodes en -waarden die zijn opgegeven in de code eigenschap binnen het object ErrorResponse zijn stabiel. Waarden die zijn opgegeven in de message eigenschap binnen het object ErrorResponse , kunnen na verloop van tijd veranderen.

In de volgende codefragmenten ziet u een voorbeeldaanvraag en het resulterende foutbericht.

Verzoek

POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]

Antwoord

HTTP/1.1 502 Bad Gateway
[other headers]
{
    "error": {
        "code": "BotRejectedActivity",
        "message": "Failed to send activity: bot returned an error"
    }
}

Tokenbewerkingen

Gebruik deze bewerkingen om een token te maken of te vernieuwen dat een client kan gebruiken voor toegang tot één gesprek.

Operation Description
Token genereren Genereer een token voor een nieuw gesprek.
Token vernieuwen Een token vernieuwen.

Token genereren

Hiermee wordt een token gegenereerd dat geldig is voor één gesprek.

POST /v3/directline/tokens/generate
Inhoud Description
aanvraaginhoud Een TokenParameters-object
Retourneren Een gespreksobject

Token vernieuwen

Hiermee vernieuwt u het token.

POST /v3/directline/tokens/refresh
Inhoud Description
aanvraaginhoud n/a
Retourneren Een gespreksobject

Gespreksbewerkingen

Gebruik deze bewerkingen om een gesprek met uw bot te openen en activiteiten uit te wisselen tussen client en bot.

Operation Description
Gesprek starten Hiermee opent u een nieuw gesprek met de bot.
Gespreksgegevens ophalen Hiermee haalt u informatie over een bestaand gesprek op. Met deze bewerking wordt een nieuwe WebSocket-stream-URL gegenereerd die een client kan gebruiken om opnieuw verbinding te maken met een gesprek.
Activiteiten ophalen Hiermee worden activiteiten opgehaald uit de bot.
Een activiteit verzenden Hiermee wordt een activiteit naar de bot verzonden.
Bestand(en) uploaden en verzenden Uploadt en verzendt een of meer bestanden als bijlagen.

Begin een gesprek

Hiermee opent u een nieuw gesprek met de bot.

POST /v3/directline/conversations
Inhoud Description
aanvraaginhoud Een TokenParameters-object
Retourneren Een gespreksobject

Gespreksgegevens ophalen

Haalt informatie op over een bestaand gesprek en genereert ook een nieuwe WebSocket-stream-URL die een client kan gebruiken om opnieuw verbinding te maken met een gesprek. U kunt eventueel de watermark parameter opgeven in de aanvraag-URI om het meest recente bericht aan te geven dat door de client wordt weergegeven.

GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
Inhoud Description
aanvraaginhoud n/a
Retourneren Een gespreksobject

Activiteiten ophalen

Hiermee worden activiteiten opgehaald uit de bot voor het opgegeven gesprek. U kunt eventueel de watermark parameter opgeven in de aanvraag-URI om het meest recente bericht aan te geven dat door de client wordt weergegeven.

GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
Inhoud Description
aanvraaginhoud n/a
Retourneren Een ActivitySet-object . Het antwoord bevat watermark als een eigenschap van het ActivitySet object. Klanten moeten door de beschikbare activiteiten bladeren door de watermark waarde door te voeren totdat er geen activiteiten worden geretourneerd.

Een activiteit verzenden

Hiermee wordt een activiteit naar de bot verzonden.

POST /v3/directline/conversations/{conversationId}/activities
Inhoud Description
aanvraaginhoud Een activiteitsobject
Retourneren Een ResourceResponse die een id eigenschap bevat die de id aangeeft van de activiteit die naar de bot is verzonden.

Bestand(en) uploaden en verzenden

Uploadt en verzendt een of meer bestanden als bijlagen. Stel de userId parameter in de aanvraag-URI in om de id op te geven van de gebruiker die de bijlagen verzendt.

POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
Inhoud Description
aanvraaginhoud Vul voor één bijlage de hoofdtekst van de aanvraag in met de bestandsinhoud. Voor meerdere bijlagen maakt u een aanvraagbody met meerdere onderdelen die één deel voor elke bijlage bevat, en (optioneel) één onderdeel voor het activiteitsobject dat als container voor de opgegeven bijlagen moet fungeren. Zie Een activiteit naar de bot verzenden voor meer informatie.
Retourneren Een ResourceResponse die een id eigenschap bevat die de id aangeeft van de activiteit die naar de bot is verzonden.

Note

Geüploade bestanden worden na 24 uur verwijderd.

Schema

Het Direct Line 3.0-schema bevat alle objecten die zijn gedefinieerd door het Bot Framework-schema, evenals enkele objecten die specifiek zijn voor Direct Line.

ActivitySet-object

Hiermee definieert u een set activiteiten.

Vastgoed Type Description
activiteiten Activity[] Matrix van activiteitsobjecten .
watermerk string Maximumwatermerk van activiteiten binnen de set. Een client kan de watermark waarde gebruiken om het meest recente bericht aan te geven dat het heeft gezien bij het ophalen van activiteiten van de bot of bij het genereren van een nieuwe WebSocket-stream-URL.

Gespreksobject

Hiermee definieert u een Direct Line gesprek.

Vastgoed Type Description
conversationId string Id waarmee het gesprek uniek wordt geïdentificeerd waarvoor het opgegeven token geldig is.
eTag string Een HTTP ETag (entiteitstag).
expires_in number Aantal seconden totdat het token verloopt.
referenceGrammarId string Id voor de referentie grammatica voor deze bot.
streamUrl string URL voor de berichtstroom van het gesprek.
token string Token dat geldig is voor het opgegeven gesprek.

TokenParameters-object

Parameters voor het maken van een token.

Vastgoed Type Description
eTag string Een HTTP ETag (entiteitstag).
trustedOrigins string[] Vertrouwde oorsprongen die binnen het token moeten worden ingesloten.
user ChannelAccount Gebruikersaccount dat moet worden ingesloten in het token.

Activities

Voor elke activiteit die een client van een bot ontvangt via Direct Line:

  • Bijlagekaarten blijven behouden.
  • URL's voor geüploade bijlagen zijn verborgen met een privékoppeling.
  • De channelData eigenschap blijft behouden zonder wijziging.

Clients kunnen meerdere activiteiten van de bot ontvangen als onderdeel van een ActivitySet.

Wanneer een client een Activity naar een bot verzendt via Direct Line:

  • De type eigenschap geeft de typeactiviteit op die wordt verzonden (meestal bericht).
  • De from eigenschap moet worden ingevuld met een gebruikers-id, gekozen door de client.
  • Bijlagen kunnen URL's bevatten naar bestaande resources of URL's die zijn geüpload via het eindpunt van de Direct Line bijlage.
  • De channelData eigenschap blijft behouden zonder wijziging.
  • De totale grootte van de activiteit, wanneer deze wordt geserialiseerd naar JSON en versleuteld, mag niet langer zijn dan 256.000 tekens. We raden u aan activiteiten onder de 150.000 te houden. Als er meer gegevens nodig zijn, kunt u overwegen om de activiteit op te splitsen of bijlagen te gebruiken.

Clients kunnen één activiteit per aanvraag verzenden .

Aanvullende bronnen