Skicka en aktivitet till roboten i Direct Line API 3.0
Med hjälp av protokollet Direct Line 3.0 kan klienter och robotar utbyta flera olika typer av aktiviteter, inklusive meddelandeaktiviteter, skrivaktiviteter och anpassade aktiviteter som roboten stöder. En klient kan skicka en enskild aktivitet per begäran.
Skicka en aktivitet
Om du vill skicka en aktivitet till roboten måste klienten skapa ett aktivitetsobjekt för att definiera aktiviteten och sedan skicka en POST
begäran till https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities
och ange aktivitetsobjektet i brödtexten i begäran.
Följande kodfragment innehåller ett exempel på begäran och svar för Skicka aktivitet.
Förfrågan
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0
Content-Type: application/json
[other headers]
{
"locale": "en-EN",
"type": "message",
"from": {
"id": "user1"
},
"text": "hello"
}
Svarsåtgärder
När aktiviteten levereras till roboten svarar tjänsten med en HTTP-statuskod som återspeglar robotens statuskod. Om roboten genererar ett fel returneras ett HTTP 502-svar ("Felaktig gateway") till klienten som svar på begäran om skicka aktivitet.
Anteckning
Detta kan bero på att en korrekt token inte användes. Endast den token som togs emot mot startkonversationen kan användas för att skicka en aktivitet.
Om POST lyckas innehåller svaret en JSON-nyttolast som anger ID:t för aktiviteten som skickades till roboten.
HTTP/1.1 200 OK
[other headers]
{
"id": "0001"
}
Total tid för begäran/svar för skicka aktivitet
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 aktivitetsobjektet som den skickar med eller POST /v3/directline/conversations/{conversationId}/activities
genom att ladda upp bifogade filer med hjälp POST /v3/directline/conversations/{conversationId}/upload
av .
Skicka bifogade filer efter URL
Om du vill skicka en eller flera bifogade filer som en del av aktivitetsobjektet med hjälp av tar du bara med POST /v3/directline/conversations/{conversationId}/activities
ett eller flera Objekt för bifogade filer i aktivitetsobjektet och anger contentUrl
egenskapen för varje bifogat objekt för att ange HTTP, HTTPS eller data
URI för den bifogade filen.
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 /v3/directline/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/v3/directline/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. Parametern userId
krävs. 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/v3/directline/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 en meddelandeaktivitet till roboten när uppladdningen är klar och svaret som klienten tar emot innehåller ID:t för den aktivitet som skickades.
HTTP/1.1 200 OK
[other headers]
{
"id": "0003"
}
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 /v3/directline/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 Activity
objekt i begäran genom att lägga till en del som anger Content-Type
rubrikvärdet application/vnd.microsoft.activity
. Om begäran innehåller en aktivitet läggs de bifogade filer som anges av andra delar av nyttolasten till som bilagor till aktiviteten innan den skickas. Om begäran inte innehåller en aktivitet skapas en tom aktivitet som fungerar som den container där de angivna bilagorna 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/v3/directline/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.activity
[other headers]
{
"type": "message",
"from": {
"id": "user1"
},
"text": "Hey I just IM'd you\n\nand this is crazy\n\nbut here's my webhook\n\nso POST me maybe"
}
----DD4E5147-E865-4652-B662-F223701A8A89
Svarsåtgärder
Om begäran lyckas skickas en meddelandeaktivitet till roboten när uppladdningen är klar och svaret som klienten tar emot innehåller ID:t för den aktivitet som skickades.
HTTP/1.1 200 OK
[other headers]
{
"id": "0004"
}