Megosztás a következőn keresztül:


Üzenetek küldése és fogadása a Bot Connector API-val

A Bot Connector szolgáltatás lehetővé teszi, hogy a robot több csatornán keresztül kommunikáljon, például a Email, a Slack és egyebek között. Megkönnyíti a robot és a felhasználó közötti kommunikációt azáltal, hogy a tevékenységeket a robotról a csatornára és a csatornáról a robotra viszi át. Minden tevékenység tartalmazza az üzenet megfelelő célhelyre való irányításához használt információkat, valamint az üzenet létrehozójával, az üzenet környezetével és az üzenet címzettjével kapcsolatos információkat. Ez a cikk azt ismerteti, hogyan használhatja a Bot Connector szolgáltatást a robot és a felhasználó közötti üzenetcserére egy csatornán.

Válasz egy üzenetre

Válasz létrehozása

Amikor a felhasználó üzenetet küld a robotnak, a robot az üzenetet típusútevékenységobjektumként kapja meg. Ha válaszolni szeretne egy felhasználó üzenetére, hozzon létre egy új Activity objektumot, és kezdje a következő tulajdonságok beállításával:

Tulajdonság Érték
Beszélgetés Állítsa ezt a tulajdonságot a conversation tulajdonság tartalmára a felhasználó üzenetében.
forrás: Állítsa ezt a tulajdonságot a recipient tulajdonság tartalmára a felhasználó üzenetében.
területi beállítás Ha meg van adva, állítsa be ezt a tulajdonságot a locale felhasználó üzenetében szereplő tulajdonság tartalmának.
Címzett Állítsa ezt a tulajdonságot a from tulajdonság tartalmára a felhasználó üzenetében.
replyToId Állítsa ezt a tulajdonságot a id tulajdonság tartalmára a felhasználó üzenetében.
típus Állítsa ezt a tulajdonságot üzenetre.

Ezután állítsa be azokat a tulajdonságokat, amelyek megadják a felhasználóval kommunikálni kívánt információkat. Beállíthatja például a text tulajdonságot úgy, hogy megadja az üzenetben megjelenítendő szöveget, a tulajdonságot úgy, speak hogy a robot által kimondandó szöveget adjon meg, a tulajdonságot pedig úgy, attachments hogy a médiamellékleteket vagy a gazdag kártyákat az üzenetbe belefoglalva adja meg. A gyakran használt üzenettulajdonságokkal kapcsolatos részletes információkért lásd: Üzenetek létrehozása.

Válasz küldése

serviceUrl A bejövő tevékenység tulajdonságával azonosíthatja azt az alap URI-t, amelyet a robotnak használnia kell a válasz kiadásához.

A válasz elküldéséhez adja ki a következő kérést:

POST /v3/conversations/{conversationId}/activities/{activityId}

Ebben a kérelem URI-jában cserélje le a(z) {conversationId} értéket az conversation objektum id tulajdonságának értékére a (válasz) tevékenységen belül, és cserélje le a {activityId} értékét a replyToId (válasz) tevékenységen belüli tulajdonság értékére. Állítsa a kérés törzsét a létrehozott Tevékenység objektumra a válasz megjelenítéséhez.

Az alábbi példa egy kérést mutat be, amely egyszerű szöveges választ küld egy felhasználó üzenetére. Ebben a példakérésben https://smba.trafficmanager.net/teams az alap URI-t jelöli, a robottal kapcsolatos problémákat okozó kérések alap URI-ja pedig eltérő lehet. Az alap URI beállításával kapcsolatos részletekért lásd: API-referencia.

POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/5d5cdc723 
Authorization: Bearer ACCESS_TOKEN 
Content-Type: application/json 
{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "Pepper's News Feed"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "Convo1"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "SteveW"
    },
    "text": "My bot's reply",
    "replyToId": "5d5cdc723"
}

Üzenet küldése (nem válasz)

A robot által küldött üzenetek többsége a felhasználótól kapott üzenetekre válaszol. Előfordulhat azonban, hogy a robotnak olyan üzenetet kell küldenie a beszélgetésnek, amely nem közvetlen válasz a felhasználótól érkező üzenetekre. Előfordulhat például, hogy a robotnak el kell indítania egy új beszélgetési témát, vagy el kell küldenie egy búcsúüzenetet a beszélgetés végén.

Ha olyan beszélgetésbe szeretne üzenetet küldeni, amely nem közvetlen válasz a felhasználótól érkező üzenetekre, adja ki ezt a kérést:

POST /v3/conversations/{conversationId}/activities

Ebben a kérelem URI-jában cserélje le a (z) {conversationId} kifejezést a beszélgetés azonosítójára.

Állítsa a kérés törzsét egy létrehozott tevékenységobjektumra , amely a válaszát képviseli.

Megjegyzés

A Bot Framework nem szab korlátozásokat a robot által küldött üzenetek számára. A legtöbb csatorna azonban szabályozási korlátozásokat alkalmaz, hogy a robotok rövid idő alatt ne küldjenek nagy számú üzenetet. Továbbá, ha a robot több üzenetet küld gyorsan egymás után, előfordulhat, hogy a csatorna nem mindig a megfelelő sorrendben jeleníti meg az üzeneteket.

Beszélgetés indítása

Előfordulhat, hogy a robotnak egy vagy több felhasználóval kell beszélgetést kezdeményeznie. Ha egy csatornán lévő felhasználóval szeretne beszélgetést indítani, a robotnak ismernie kell a fiókadatait és a felhasználó fiókadatait az adott csatornán.

Tipp

Ha lehetséges, hogy a robotnak a jövőben beszélgetéseket kell kezdenie a felhasználóival, gyorsítótárba kell helyeznie a felhasználói fiók adatait, más releváns információkat, például a felhasználói beállításokat és a területi beállításokat, valamint a szolgáltatás URL-címét (a beszélgetés indítása kérelemben az alap URI-ként való használathoz).

Beszélgetés indításához adja ki a következő kérést:

POST /v3/conversations

Állítsa a kérelem törzsét egy ConversationParameters objektumra, amely megadja a robot fiókadatait és a beszélgetésbe felvenni kívánt felhasználó(k) fiókadatait.

Megjegyzés

Nem minden csatorna támogatja a csoportos beszélgetéseket. Tekintse meg a csatorna dokumentációját annak megállapításához, hogy egy csatorna támogatja-e a csoportos beszélgetéseket, és hogy megállapítsa, hogy egy csatorna legfeljebb hány résztvevőt engedélyez egy beszélgetésben.

Az alábbi példa egy beszélgetést kezdeményező kérést mutat be. Ebben a példakérésben https://smba.trafficmanager.net/teams az alap URI-t jelöli, a robottal kapcsolatos problémákat okozó kérések alap URI-ja pedig eltérő lehet. Az alap URI beállításával kapcsolatos részletekért lásd: API-referencia.

POST https://smba.trafficmanager.net/teams/v3/conversations 
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
    "bot": {
        "id": "12345678",
        "name": "bot's name"
    },
    "isGroup": false,
    "members": [
        {
            "id": "1234abcd",
            "name": "recipient's name"
        }
    ],
    "topicName": "News Alert"
}

Ha a beszélgetés a megadott felhasználókkal van létrehozva, a válasz tartalmazni fog egy azonosítót, amely azonosítja a beszélgetést.

{
    "id": "abcd1234"
}

A robot ezután ezzel a beszélgetési azonosítóval üzenetet küldhet a beszélgetésen belüli felhasználó(ok)nak.

További források