Delen via


Een bericht naar de bot verzenden in Direct Line API 1.1

Belangrijk

In dit artikel wordt beschreven hoe u een bericht naar de bot verzendt met behulp van Direct Line API 1.1. Als u een nieuwe verbinding maakt tussen uw clienttoepassing en bot, gebruikt u in plaats daarvan Direct Line API 3.0.

Met behulp van het protocol Direct Line 1.1 kunnen clients berichten uitwisselen met bots. Deze berichten worden geconverteerd naar het schema dat de bot ondersteunt (Bot Framework v1 of Bot Framework v3). Een client kan per aanvraag één bericht verzenden.

Een bericht verzenden

Als u een bericht naar de bot wilt verzenden, moet de client een berichtobject maken om het bericht te definiëren en vervolgens een POST aanvraag indienen om https://directline.botframework.com/api/conversations/{conversationId}/messageshet berichtobject op te geven in de hoofdtekst van de aanvraag.

De volgende codefragmenten bevatten een voorbeeld van de aanvraag en het antwoord verzenden van berichten.

Aanvraag

POST https://directline.botframework.com/api/conversations/abc123/messages
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
[other headers]
{
  "text": "hello",
  "from": "user1"
}

Antwoord

Wanneer het bericht wordt bezorgd bij de bot, reageert de service met een HTTP-statuscode die de statuscode van de bot weerspiegelt. Als de bot een fout genereert, wordt een HTTP 500-antwoord ('Interne serverfout') geretourneerd aan de client als reactie op de verzendaanvraag. Als de POST is geslaagd, retourneert de service een HTTP 204-statuscode. Er worden geen gegevens geretourneerd in de hoofdtekst van het antwoord. Het bericht van de client en alle berichten van de bot kunnen worden verkregen via polling.

HTTP/1.1 204 No Content
[other headers]

Totale tijd voor de aanvraag/reactie voor het verzenden van berichten

De totale tijd voor het posten van een bericht naar een Direct Line gesprek is de som van het volgende:

  • Transittijd voor de HTTP-aanvraag om van de client naar de Direct Line-service te reizen
  • Interne verwerkingstijd binnen Direct Line (meestal minder dan 120 ms)
  • Transittijd van de Direct Line-service naar de bot
  • Verwerkingstijd binnen de bot
  • Transittijd voor het HTTP-antwoord om terug te gaan naar de client

Bijlagen verzenden naar de bot

In sommige situaties moet een client mogelijk bijlagen verzenden naar de bot, zoals afbeeldingen of documenten. Een client kan bijlagen naar de bot verzenden door de URL('s) van de bijlagen in het berichtobject op te geven dat wordt verzonden met POST /api/conversations/{conversationId}/messages behulp van of door bijlagen te uploaden met behulp van POST /api/conversations/{conversationId}/upload.

Bijlagen per URL verzenden

Als u een of meer bijlagen wilt verzenden als onderdeel van het berichtobject, POST /api/conversations/{conversationId}/messagesgeeft u de bijlage-URL('s) op binnen de matrix en/of matrix van attachments het berichtimages.

Bijlagen verzenden door te uploaden

Vaak heeft een client afbeelding(en) of document(s) op een apparaat dat deze naar de bot wil verzenden, maar geen URL's die overeenkomen met die bestanden. In deze situatie kan een client een POST /api/conversations/{conversationId}/upload aanvraag indienen om bijlagen naar de bot te verzenden door deze te uploaden. De indeling en inhoud van de aanvraag zijn afhankelijk van het feit of de client één bijlage verzendt of meerdere bijlagen verzendt.

Eén bijlage verzenden door te uploaden

Als u één bijlage wilt verzenden door te uploaden, geeft u deze aanvraag:

POST https://directline.botframework.com/api/conversations/{conversationId}/upload?userId={userId}
Authorization: Bearer SECRET_OR_TOKEN
Content-Type: TYPE_OF_ATTACHMENT
Content-Disposition: ATTACHMENT_INFO
[other headers]

[file content]

Vervang in deze aanvraag-URI {conversationId} door de id van het gesprek en {userId} door de id van de gebruiker die het bericht verzendt. Stel in de aanvraagheaders Content-Type het type van de bijlage op en stel deze in Content-Disposition om de bestandsnaam van de bijlage op te geven.

De volgende codefragmenten bevatten een voorbeeld van de aanvraag voor verzenden (één) bijlage en het antwoord.

Aanvraag

POST https://directline.botframework.com/api/conversations/abc123/upload?userId=user1
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
Content-Type: image/jpeg
Content-Disposition: name="file"; filename="badjokeeel.jpg"
[other headers]

[JPEG content]

Antwoord

Als de aanvraag is geslaagd, wordt er een bericht naar de bot verzonden wanneer het uploaden is voltooid en de service een HTTP 204-statuscode retourneert.

HTTP/1.1 204 No Content
[other headers]

Meerdere bijlagen verzenden via uploaden

Als u meerdere bijlagen wilt verzenden door te uploaden, POST wordt er een aanvraag met meerdere onderdelen naar het /api/conversations/{conversationId}/upload eindpunt verzonden. Stel de Content-Type header van de aanvraag multipart/form-data in en voeg de Content-Type header en Content-Disposition koptekst voor elk onderdeel toe om het type en de bestandsnaam van elke bijlage op te geven. Stel in de aanvraag-URI de userId parameter in op de id van de gebruiker die het bericht verzendt.

U kunt een berichtobject in de aanvraag opnemen door een deel toe te voegen dat de Content-Type headerwaarde application/vnd.microsoft.bot.messageaangeeft. Hierdoor kan de client het bericht met de bijlagen aanpassen. Als de aanvraag een bericht bevat, worden de bijlagen die zijn opgegeven door andere onderdelen van de nettolading toegevoegd als bijlagen aan dat bericht voordat deze wordt verzonden.

De volgende fragmenten bevatten een voorbeeld van de aanvraag voor verzenden (meerdere) bijlagen en antwoorden. In dit voorbeeld verzendt de aanvraag een bericht met tekst en één afbeeldingsbijlage. Er kunnen extra onderdelen aan de aanvraag worden toegevoegd om meerdere bijlagen in dit bericht op te nemen.

Aanvraag

POST https://directline.botframework.com/api/conversations/abc123/upload?userId=user1
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
Content-Type: multipart/form-data; boundary=----DD4E5147-E865-4652-B662-F223701A8A89
[other headers]

----DD4E5147-E865-4652-B662-F223701A8A89
Content-Type: image/jpeg
Content-Disposition: form-data; name="file"; filename="badjokeeel.jpg"
[other headers]

[JPEG content]

----DD4E5147-E865-4652-B662-F223701A8A89
Content-Type: application/vnd.microsoft.bot.message
[other headers]

{
  "text": "Hey I just IM'd you\n\nand this is crazy\n\nbut here's my webhook\n\nso POST me maybe",
  "from": "user1"
}

----DD4E5147-E865-4652-B662-F223701A8A89

Antwoord

Als de aanvraag is geslaagd, wordt er een bericht naar de bot verzonden wanneer het uploaden is voltooid en de service een HTTP 204-statuscode retourneert.

HTTP/1.1 204 No Content
[other headers]

Aanvullende resources