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ěď.

  1. Nastavte vlastnost konverzace na obsah vlastnosti konverzace ve zprávě uživatele.
  2. Nastavte vlastnost from na obsah vlastnosti příjemce ve zprávě uživatele.
  3. Nastavte vlastnost příjemce na obsah vlastnosti from ve zprávě uživatele.
  4. 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.