Tevékenység küldése a robotnak a Direct Line API 3.0-ban
A Direct Line 3.0 protokoll használatával az ügyfelek és a robotok számos különböző típusú tevékenységet cserélhetnek, beleértve az üzenettevékenységeket , a gépelési tevékenységeket és a robot által támogatott egyéni tevékenységeket. Az ügyfelek kérésenként egyetlen tevékenységet küldhetnek.
Tevékenység küldése
Ha tevékenységet szeretne küldeni a robotnak, az ügyfélnek létre kell hoznia egy tevékenységobjektumot a tevékenység meghatározásához, majd ki kell adnia egy POST kérést https://directline.botframework.com/v3/directline/conversations/{conversationId}/activitiesa kérelem törzsében található Tevékenység objektum megadásával.
Az alábbi kódrészletek példaként szolgálnak a Tevékenység küldése kérelemre és a válaszra.
Kérés
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"
}
Reagálás
Amikor a tevékenység eljut a robothoz, a szolgáltatás egy HTTP-állapotkóddal válaszol, amely tükrözi a robot állapotkódját. Ha a robot hibát generál, a rendszer egy HTTP 502-választ ("Hibás átjáró") ad vissza az ügyfélnek a tevékenységküldési kérelemre válaszul.
Megjegyzés
Ezt az okozhatja, hogy nem a megfelelő jogkivonatot használták. Tevékenység küldésére csak a beszélgetés indításakor kapott jogkivonat használható.
Ha a POST sikeres, a válasz JSON hasznos adatokat tartalmaz, amely megadja a robotnak küldött tevékenység azonosítóját.
HTTP/1.1 200 OK
[other headers]
{
"id": "0001"
}
A tevékenységküldési kérelem/válasz teljes időtartama
A Közvetlen vonal beszélgetésbe küldött üzenetek postázásának teljes időtartama az alábbiak összege:
- Az ügyfél és a Direct Line szolgáltatás közötti HTTP-kérés átviteli ideje
- Belső feldolgozási idő a Direct Line-on belül (általában kevesebb, mint 120 ezredms)
- Átviteli idő a Direct Line szolgáltatásból a robotba
- Feldolgozási idő a roboton belül
- A HTTP-válasz átviteli ideje az ügyfélhez való visszatéréshez
Melléklet(ek) küldése a robotnak
Bizonyos esetekben előfordulhat, hogy az ügyfélnek mellékleteket kell küldenie a robotnak, például képeket vagy dokumentumokat. Az ügyfél mellékleteket küldhet a robotnak a küldendő tevékenységobjektumbanPOST /v3/directline/conversations/{conversationId}/activities található melléklet(ek) URL-címének megadásával vagy a melléklet(ek)POST /v3/directline/conversations/{conversationId}/uploadfeltöltésével.
Melléklet(ek) küldése URL-cím szerint
Ha egy vagy több mellékletet szeretne küldeni a Tevékenység objektum POST /v3/directline/conversations/{conversationId}/activitiesrészeként, egyszerűen foglaljon bele egy vagy több Melléklet objektumot a Tevékenység objektumba, és állítsa be az contentUrl egyes Melléklet objektumok tulajdonságát a melléklet HTTP, HTTPS vagy data URI értékének megadásához.
Melléklet(ek) küldése feltöltéssel
Az ügyfél gyakran rendelkezhet képekkel vagy dokumentumokkal egy olyan eszközön, amelyet el szeretne küldeni a robotnak, de ezekhez a fájlokhoz nem tartoznak URL-címek. Ebben az esetben az ügyfél a feltöltéssel elküldheti POST /v3/directline/conversations/{conversationId}/upload a mellékleteket a robotnak. A kérelem formátuma és tartalma attól függ, hogy az ügyfél egyetlen mellékletet vagy több mellékletet küld-e.
Egyetlen melléklet küldése feltöltéssel
Ha egyetlen mellékletet szeretne feltölteni, adja ki ezt a kérést:
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]
Ebben a kérelem URI-jában cserélje le a {conversationId} kifejezést a beszélgetés azonosítójára, a {userId} helyére pedig az üzenetet küldő felhasználó azonosítóját. A(z) userId paramétert kötelező megadni. A kérelemfejlécekben adja Content-Type meg a melléklet típusát, és adja Content-Disposition meg a melléklet fájlnevét.
Az alábbi kódrészletek egy példát mutatnak be a Küldés (egyetlen) mellékletkérelemre és -válaszra.
Kérés
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]
Reagálás
Ha a kérés sikeres, a rendszer a feltöltés befejezésekor üzenetet küld a robotnak, és az ügyfél által kapott válasz tartalmazza az elküldött tevékenység azonosítóját.
HTTP/1.1 200 OK
[other headers]
{
"id": "0003"
}
Több melléklet küldése feltöltéssel
Ha több mellékletet szeretne feltölteni, POST küldjön többrészes kérelmet a /v3/directline/conversations/{conversationId}/upload végpontnak. Content-Type A mellékletek típusának és fájlnevének megadásához multipart/form-data állítsa be a kérelem fejlécét, és Content-Disposition adja meg az Content-Type egyes modulok fejlécét és fejlécét. A kérés URI-jában állítsa a userId paramétert az üzenetet küldő felhasználó azonosítójára.
A kérelembe belefoglalhat egy Activity objektumot, ha hozzáad egy olyan részt, amely megadja a Content-Type fejléc értékét application/vnd.microsoft.activity. Ha a kérelem tartalmaz tevékenységet, a hasznos adat más részei által megadott mellékletek mellékletként lesznek hozzáadva az adott tevékenységhez az elküldése előtt. Ha a kérelem nem tartalmaz tevékenységet, a rendszer létrehoz egy üres tevékenységet, amely a megadott mellékleteket tárolóként szolgál.
Az alábbi kódrészletek egy példát mutatnak be a Küldés (több) mellékletek kérésére és válaszára. Ebben a példában a kérelem egy szöveget és egyetlen képmellékletet tartalmazó üzenetet küld. További részek is hozzáadhatók a kérelemhez, hogy több mellékletet is szerepeltessenek ebben az üzenetben.
Kérés
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
Reagálás
Ha a kérés sikeres, a rendszer a feltöltés befejezésekor üzenetet küld a robotnak, és az ügyfél által kapott válasz tartalmazza az elküldött tevékenység azonosítóját.
HTTP/1.1 200 OK
[other headers]
{
"id": "0004"
}