Ü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.