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

További források