Dela via


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}/messagesoch 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}/uploadav .

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}/messagesanger 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]

Ytterligare resurser