Robot létrehozása a Bot Connector szolgáltatással a Bot Connector API-val

A Bot Connector szolgáltatás lehetővé teszi, hogy a robot az Azure Portal konfigurált csatornákkal váltson üzeneteket az iparági szabványnak megfelelő REST és JSON használatával HTTPS-en keresztül. Ez az oktatóanyag végigvezeti a Bot Framework hozzáférési jogkivonatának beszerzésén, valamint a Bot Connector szolgáltatás használatával az üzenetek felhasználóval való cseréjének folyamatán.

Hozzáférési jogkivonat lekérése

Fontos

Ha még nem tette meg, regisztrálnia kell a robotot a Bot Frameworkben az alkalmazásazonosító és a jelszó beszerzéséhez. Hozzáférési jogkivonat beszerzéséhez szüksége lesz a robot AppID azonosítójára és jelszavára.

A Bot Connector szolgáltatással való kommunikációhoz meg kell adnia egy hozzáférési jogkivonatot az Authorization egyes API-kérések fejlécében az alábbi formátumban:

Authorization: Bearer ACCESS_TOKEN

A robot hozzáférési jogkivonatát egy API-kérés kiadásával szerezheti be.

Kérés

Ha olyan hozzáférési jogkivonatot szeretne kérni, amely a Bot Connector szolgáltatás felé irányuló kérések hitelesítésére használható, adja ki a következő kérést, és cserélje le a MICROSOFT-APP-ID és a MICROSOFT-APP-PASSWORD elemet a robot Bot Frameworkben való regisztrálásakor kapott alkalmazásazonosítóra és jelszóra.

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

Reagálás

Ha a kérés sikeres, egy HTTP 200-választ kap, amely megadja a hozzáférési jogkivonatot és a lejárattal kapcsolatos információkat.

{
    "token_type":"Bearer",
    "expires_in":3600,
    "ext_expires_in":3600,
    "access_token":"eyJhbGciOiJIUzI1Ni..."
}

Tipp

A Bot Connector szolgáltatásban történő hitelesítésről további információt a Hitelesítés című témakörben talál.

Exchange-üzenetek a felhasználóval

A beszélgetés a felhasználó és a robot között váltott üzenetek sorozata.

Üzenet fogadása a felhasználótól

Amikor a felhasználó üzenetet küld, a Bot Framework Connector POST-kérést küld a robot regisztrálásakor megadott végpontnak. A kérelem törzse egy Tevékenység objektum. Az alábbi példa azt a kéréstörzset mutatja be, amelyet a robot akkor kap, amikor a felhasználó egyszerű üzenetet küld a robotnak.

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

Válasz a felhasználó üzenetére

Ha a robot végpontja olyan kérést POST kap, amely a felhasználótól érkező üzenetet (például üzenetet) jelöl, type = használja a kérelemben szereplő információkat a válasz tevékenységobjektumának létrehozásához.

  1. Állítsa a beszélgetés tulajdonságot a felhasználó üzenetében található beszélgetési tulajdonság tartalmára.
  2. Állítsa a from tulajdonságot a címzett tulajdonság tartalmára a felhasználó üzenetében.
  3. Állítsa a címzett tulajdonságot a feladó tulajdonság tartalmának a felhasználó üzenetében.
  4. Állítsa be a szöveg és a mellékletek tulajdonságait a megfelelő módon.

serviceUrl A bejövő kérelem 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 POST elküldéséhez az Activity objektumnak a következő címre kell /v3/conversations/{conversationId}/activities/{activityId}küldenie az objektumot az alábbi példában látható módon. A kérés törzse egy Activity objektum, amely arra kéri a felhasználót, hogy válasszon ki egy rendelkezésre álló időpontot. 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/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..."
}

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.

Fontos

Ahogy az ebben a példában is látható, az Authorization egyes elküldött API-kérések fejlécének tartalmaznia kell a Bearer szót, majd a Bot Frameworkből beszerzett hozzáférési jogkivonatot.

Ha egy másik üzenetet szeretne küldeni, amely lehetővé teszi a felhasználó számára, hogy egy gombra kattintva válasszon ki egy időpontot, POST egy másik kérést ugyanarra a végpontra:

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

Következő lépések

Ebben az oktatóanyagban hozzáférési jogkivonatot szerzett be a Bot Frameworkből, és a Bot Connector szolgáltatással váltott üzeneteket a felhasználóval. A robot teszteléséhez és hibakereséséhez használhatja a Bot Framework Emulator. Ha meg szeretné osztani a robotot másokkal, konfigurálnia kell, hogy egy vagy több csatornán fusson.