Skapa en robot med Bot Connector-tjänsten med Bot Connector-API:et

Bot Connector-tjänsten gör det möjligt för din robot att utbyta meddelanden med kanaler som har konfigurerats i Azure Portal med hjälp av branschstandard-REST och JSON via HTTPS. Den här självstudien vägleder dig genom processen att hämta en åtkomsttoken från Bot Framework och använda Bot Connector-tjänsten för att utbyta meddelanden med användaren.

Hämta en åtkomsttoken

Viktigt

Om du inte redan har gjort det måste du registrera din robot med Bot Framework för att få dess app-ID och lösenord. Du behöver robotens AppID och lösenord för att få en åtkomsttoken.

Om du vill kommunicera med Bot Connector-tjänsten måste du ange en åtkomsttoken i Authorization huvudet för varje API-begäran med följande format:

Authorization: Bearer ACCESS_TOKEN

Du kan hämta åtkomsttoken för din robot genom att utfärda en API-begäran.

Förfrågan

Om du vill begära en åtkomsttoken som kan användas för att autentisera begäranden till Bot Connector-tjänsten utfärdar du följande begäran och ersätter MICROSOFT-APP-ID och MICROSOFT-APP-PASSWORD med det app-ID och lösenord som du fick när du registrerade roboten med Bot Framework.

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

Svarsåtgärder

Om begäran lyckas får du ett HTTP 200-svar som anger åtkomsttoken och information om dess upphörande.

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

Tips

Mer information om autentisering i Bot Connector-tjänsten finns i Autentisering.

Utbyta meddelanden med användaren

En konversation är en serie meddelanden som utbyts mellan en användare och din robot.

Ta emot ett meddelande från användaren

När användaren skickar ett meddelande skickar Bot Framework Connector en begäran till den slutpunkt som du angav när du registrerade din robot. Brödtexten i begäran är ett aktivitetsobjekt . I följande exempel visas begärandetexten som en robot tar emot när användaren skickar ett enkelt meddelande till roboten.

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

Svara på användarens meddelande

När robotens slutpunkt tar emot en POST begäran som representerar ett meddelande från användaren (till exempel type = ett meddelande) använder du informationen i begäran för att skapa aktivitetsobjektet för ditt svar.

  1. Ange konversationsegenskapen till innehållet i konversationsegenskapen i användarens meddelande.
  2. Ange från-egenskapen till innehållet i mottagaregenskapen i användarens meddelande.
  3. Ange mottagarens egenskap till innehållet i from-egenskapen i användarens meddelande.
  4. Ange egenskaperna för text och bifogade filer efter behov.

serviceUrl Använd egenskapen i den inkommande begäran för att identifiera den bas-URI som roboten ska använda för att utfärda sitt svar.

Skicka svaret genom POSTActivity att skicka objektet till /v3/conversations/{conversationId}/activities/{activityId}, som du ser i följande exempel. Brödtexten i den här begäran är ett Activity objekt som uppmanar användaren att välja en tillgänglig avtalad tid. Mer information om hur du anger bas-URI finns i API-referens.

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

I den här exempelbegäran https://smba.trafficmanager.net/teams representerar bas-URI:n. Bas-URI:n för begäranden om att dina robotproblem kan vara annorlunda. Mer information om hur du anger bas-URI finns i API-referens.

Viktigt

Som du ser i det här exemplet Authorization måste rubriken för varje API-begäran som du skickar innehålla ordet Bearer följt av den åtkomsttoken som du fick från Bot Framework.

Om du vill skicka ett annat meddelande som gör det möjligt för en användare att välja en tillgänglig tid för avtalad tid genom att klicka på en knapp, POST en annan begäran till samma slutpunkt:

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

Nästa steg

I den här självstudien fick du en åtkomsttoken från Bot Framework och använde Bot Connector-tjänsten för att utbyta meddelanden med användaren. Du kan använda Bot Framework Emulator för att testa och felsöka din robot. Om du vill dela din robot med andra måste du konfigurera den så att den körs på en eller flera kanaler.