Dela via


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

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}/activitiesett 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"
}

Ytterligare resurser