Vytvoření robota se službou Bot Connector s využitím rozhraní API konektoru robota
Služba Bot Connector umožňuje robotovi vyměňovat si zprávy s kanály nakonfigurovanými v Azure Portal pomocí standardních rozhraní REST a JSON přes HTTPS. Tento kurz vás provede procesem získání přístupového tokenu z bot Frameworku a použití služby Bot Connector k výměně zpráv s uživatelem.
Získání přístupového tokenu
Důležité
Pokud jste to ještě neudělali, musíte robota zaregistrovat v Bot Frameworku, abyste získali ID a heslo aplikace. K získání přístupového tokenu budete potřebovat APPID robota a heslo.
Pokud chcete komunikovat se službou Bot Connector, musíte v Authorization
hlavičce každého požadavku rozhraní API zadat přístupový token v tomto formátu:
Authorization: Bearer ACCESS_TOKEN
Přístupový token pro robota můžete získat odesláním požadavku rozhraní API.
Žádost
Pokud chcete požádat o přístupový token, který se dá použít k ověřování požadavků na službu Bot Connector, vydejte následující žádost a nahraďte MICROSOFT-APP-ID a MICROSOFT-APP-PASSWORD ID a heslo aplikace, které jste získali při registraci robota v Bot Frameworku.
POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=MICROSOFT-APP-ID&client_secret=MICROSOFT-APP-PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default
Odpověď
Pokud je požadavek úspěšný, obdržíte odpověď HTTP 200, která určuje přístupový token a informace o jeho vypršení platnosti.
{
"token_type":"Bearer",
"expires_in":3600,
"ext_expires_in":3600,
"access_token":"eyJhbGciOiJIUzI1Ni..."
}
Tip
Další podrobnosti o ověřování ve službě Bot Connector najdete v tématu Ověřování.
Výměna zpráv s uživatelem
Konverzace je řada zpráv vyměňovaných mezi uživatelem a vaším robotem.
Přijetí zprávy od uživatele
Když uživatel odešle zprávu, konektor Bot Framework odešle požadavek na koncový bod, který jste zadali při registraci robota. Text požadavku je objekt Aktivity . Následující příklad ukazuje text požadavku, který robot obdrží, když mu uživatel pošle jednoduchou zprávu.
{
"type": "message",
"id": "bf3cc9a2f5de...",
"timestamp": "2016-10-19T20:17:52.2891902Z",
"serviceUrl": "https://smba.trafficmanager.net/teams",
"channelId": "channel's name/id",
"from": {
"id": "1234abcd",
"name": "user's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "12345678",
"name": "bot's name"
},
"text": "Haircut on Saturday"
}
Odpověď na zprávu uživatele
Když koncový bod vašeho robota přijme POST
požadavek, který představuje zprávu od uživatele (například type
= zprávu), použijte informace v tomto požadavku k vytvoření objektu Aktivity pro vaši odpověď.
- Nastavte vlastnost konverzace na obsah vlastnosti konverzace ve zprávě uživatele.
- Nastavte vlastnost from na obsah vlastnosti příjemce ve zprávě uživatele.
- Nastavte vlastnost příjemce na obsah vlastnosti from ve zprávě uživatele.
- Podle potřeby nastavte vlastnosti textu a příloh .
serviceUrl
Pomocí vlastnosti v příchozím požadavku identifikujte základní identifikátor URI, který by měl robot použít k vydání odpovědi.
Pokud chcete odeslat odpověď, POST
váš Activity
objekt do /v3/conversations/{conversationId}/activities/{activityId}
objektu , jak je znázorněno v následujícím příkladu. Text tohoto požadavku je Activity
objekt, který uživatele vyzve k výběru dostupného času události. Podrobnosti o nastavení základního identifikátoru URI najdete v referenčních informacích k rozhraní API.
POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/bf3cc9a2f5de...
Authorization: Bearer eyJhbGciOiJIUzI1Ni...
Content-Type: application/json
{
"type": "message",
"from": {
"id": "12345678",
"name": "bot's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "user's name"
},
"text": "I have these times available:",
"replyToId": "bf3cc9a2f5de..."
}
V tomto příkladu požadavek https://smba.trafficmanager.net/teams
představuje základní identifikátor URI. Základní identifikátor URI pro požadavky, u které se problémy vašeho robota můžou lišit. Podrobnosti o nastavení základního identifikátoru URI najdete v referenčních informacích k rozhraní API.
Důležité
Jak je znázorněno v tomto příkladu Authorization
, hlavička každého požadavku rozhraní API, který odešlete, musí obsahovat slovo Bearer následované přístupovým tokenem, který jste získali z bot Frameworku.
Pokud chcete odeslat další zprávu, která uživateli umožní vybrat dostupný čas schůzky kliknutím na tlačítko další POST
požadavek na stejný koncový bod:
POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/bf3cc9a2f5de...
Authorization: Bearer eyJhbGciOiJIUzI1Ni...
Content-Type: application/json
{
"type": "message",
"from": {
"id": "12345678",
"name": "bot's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "user's name"
},
"attachmentLayout": "list",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.thumbnail",
"content": {
"buttons": [
{
"type": "imBack",
"title": "10:30",
"value": "10:30"
},
{
"type": "imBack",
"title": "11:30",
"value": "11:30"
},
{
"type": "openUrl",
"title": "See more",
"value": "http://www.contososalon.com/scheduling"
}
]
}
}
],
"replyToId": "bf3cc9a2f5de..."
}
Další kroky
V tomto kurzu jste získali přístupový token z bot Frameworku a použili jste službu Bot Connector k výměně zpráv s uživatelem. K testování a ladění robota můžete použít Bot Framework Emulator. Pokud chcete robota sdílet s ostatními, budete ho muset nakonfigurovat tak, aby běžel v jednom nebo více kanálech.