Skicka ett meddelande till roboten i Direct Line API 1.1
Viktigt
Den här artikeln beskriver hur du skickar ett meddelande till roboten med Direct Line API 1.1. Om du skapar en ny anslutning mellan klientprogrammet och roboten använder du Direct Line API 3.0 i stället.
Med hjälp av protokollet Direct Line 1.1 kan klienter utbyta meddelanden med robotar. Dessa meddelanden konverteras till det schema som roboten stöder (Bot Framework v1 eller Bot Framework v3). En klient kan skicka ett enda meddelande per begäran.
Skicka ett meddelande
Om du vill skicka ett meddelande till roboten måste klienten skapa ett meddelandeobjekt för att definiera meddelandet och sedan skicka en POST
begäran till https://directline.botframework.com/api/conversations/{conversationId}/messages
och ange objektet Meddelande i brödtexten i begäran.
Följande kodfragment innehåller ett exempel på begäran och svar för Skicka meddelande.
Förfrågan
POST https://directline.botframework.com/api/conversations/abc123/messages
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
[other headers]
{
"text": "hello",
"from": "user1"
}
Svarsåtgärder
När meddelandet levereras till roboten svarar tjänsten med en HTTP-statuskod som återspeglar robotens statuskod. Om roboten genererar ett fel returneras ett HTTP 500-svar ("Internt serverfel") till klienten som svar på begäran om skicka meddelande. Om POST lyckas returnerar tjänsten en HTTP 204-statuskod. Inga data returneras i brödtexten i svaret. Klientens meddelande och eventuella meddelanden från roboten kan hämtas via avsökning.
HTTP/1.1 204 No Content
[other headers]
Total tid för begäran/svar för skicka meddelande
Den totala tiden för att PUBLICERA ett meddelande till en Direct Line konversation är summan av följande:
- Överföringstid för HTTP-begäran att resa från klienten till Direct Line-tjänsten
- Intern bearbetningstid inom Direct Line (vanligtvis mindre än 120 ms)
- Överföringstid från Direct Line-tjänsten till roboten
- Bearbetningstid i roboten
- Överföringstid för HTTP-svaret att gå tillbaka till klienten
Skicka bifogade filer till roboten
I vissa situationer kan en klient behöva skicka bifogade filer till roboten, till exempel bilder eller dokument. En klient kan skicka bifogade filer till roboten antingen genom att ange URL:erna för bifogade filer i meddelandeobjektet som den skickar med eller POST /api/conversations/{conversationId}/messages
genom att ladda upp bifogade filer med hjälp POST /api/conversations/{conversationId}/upload
av .
Skicka bifogade filer efter URL
Om du vill skicka en eller flera bifogade filer som en del av objektet Meddelande med hjälp av POST /api/conversations/{conversationId}/messages
anger du URL:er för bifogade filer i meddelandets images
matris och/eller attachments
matris.
Skicka bifogade filer via uppladdning
En klient kan ofta ha avbildningar eller dokument på en enhet som den vill skicka till roboten, men inga URL:er som motsvarar dessa filer. I det här fallet kan en klient skicka en POST /api/conversations/{conversationId}/upload
begäran om att skicka bifogade filer till roboten via uppladdning. Formatet och innehållet i begäran beror på om klienten skickar en enda bifogad fil eller skickar flera bifogade filer.
Skicka en enda bifogad fil via uppladdning
Skicka en enda bifogad fil genom att ladda upp den här begäran:
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]
I den här begärande-URI:n ersätter du {conversationId} med ID:t för konversationen och {userId} med ID:t för användaren som skickar meddelandet. I begäranderubrikerna anger du Content-Type
den bifogade filens typ och anger Content-Disposition
filnamnet för den bifogade filen.
Följande kodfragment innehåller ett exempel på begäran och svar för Skicka (enskild) bifogad fil.
Förfrågan
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]
Svarsåtgärder
Om begäran lyckas skickas ett meddelande till roboten när uppladdningen är klar och tjänsten returnerar en HTTP 204-statuskod.
HTTP/1.1 204 No Content
[other headers]
Skicka flera bifogade filer via uppladdning
Om du vill skicka flera bifogade filer via uppladdning skickar POST
du en begäran med flera delar till /api/conversations/{conversationId}/upload
slutpunkten.
Content-Type
Ange rubriken för begäran till multipart/form-data
och inkludera Content-Type
huvudet och Content-Disposition
huvudet för varje del för att ange varje bifogad fils typ och filnamn. I begärande-URI anger du parametern userId
till ID:t för användaren som skickar meddelandet.
Du kan inkludera ett meddelandeobjekt i begäran genom att lägga till en del som anger Content-Type
rubrikvärdet application/vnd.microsoft.bot.message
. På så sätt kan klienten anpassa meddelandet som innehåller de bifogade filerna. Om begäran innehåller ett meddelande läggs de bifogade filer som anges av andra delar av nyttolasten till som bifogade filer i meddelandet innan det skickas.
Följande kodfragment innehåller ett exempel på begäran och svaret Skicka (flera) bifogade filer. I det här exemplet skickar begäran ett meddelande som innehåller text och en bifogad bild. Ytterligare delar kan läggas till i begäran för att inkludera flera bifogade filer i det här meddelandet.
Förfrågan
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
Svarsåtgärder
Om begäran lyckas skickas ett meddelande till roboten när uppladdningen är klar och tjänsten returnerar en HTTP 204-statuskod.
HTTP/1.1 204 No Content
[other headers]