Dela via


Skicka och ta emot meddelanden med Bot Connector-API:et

Bot Connector-tjänsten gör det möjligt för en robot att kommunicera över flera kanaler, till exempel Email, Slack med mera. Det underlättar kommunikationen mellan robot och användare genom att vidarebefordra aktiviteter från robot till kanal och från kanal till robot. Varje aktivitet innehåller information som används för att dirigera meddelandet till lämpligt mål tillsammans med information om vem som skapade meddelandet, kontexten för meddelandet och mottagaren av meddelandet. Den här artikeln beskriver hur du använder Bot Connector-tjänsten för att utbyta meddelandeaktiviteter mellan robot och användare på en kanal.

Svara på ett meddelande

Skapa ett svar

När användaren skickar ett meddelande till roboten får roboten meddelandet som ett aktivitetsobjekt av typen meddelande. Skapa ett svar på en användares meddelande genom att skapa ett nytt Activity objekt och börja med att ange följande egenskaper:

Egenskap Värde
konversation Ange den här egenskapen till innehållet i conversation egenskapen i användarens meddelande.
Från Ange den här egenskapen till innehållet i recipient egenskapen i användarens meddelande.
locale Ange den här egenskapen till innehållet locale i egenskapen i användarens meddelande, om det anges.
mottagaren Ange den här egenskapen till innehållet i from egenskapen i användarens meddelande.
replyToId Ange den här egenskapen till innehållet i id egenskapen i användarens meddelande.
typ Ange den här egenskapen till meddelande.

Ange sedan de egenskaper som anger den information som du vill kommunicera med användaren. Du kan till exempel ange text egenskapen för att ange den text som ska visas i meddelandet, ange speak egenskapen för att ange text som ska läsas av roboten attachments och ange egenskapen för att ange mediebilagor eller rtF-kort som ska inkluderas i meddelandet. Detaljerad information om vanliga meddelandeegenskaper finns i Skapa meddelanden.

Skicka svaret

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

Skicka svaret genom att utfärda den här begäran:

POST /v3/conversations/{conversationId}/activities/{activityId}

I den här begärande-URI:n ersätter du {conversationId} med värdet för conversation objektets egenskap i din (svarsaktivitet id ) och ersätter {activityId} med värdet för replyToId egenskapen i din (svarsaktivitet). Ange brödtexten för begäran till det aktivitetsobjekt som du skapade för att representera svaret.

I följande exempel visas en begäran som skickar ett enkelt textsvar till en användares meddelande. I den här exempelbegäran https://smba.trafficmanager.net/teams representerar du 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.

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

Skicka ett meddelande (ej svar)

En majoritet av de meddelanden som roboten skickar svarar på meddelanden som den tar emot från användaren. Det kan dock finnas tillfällen då roboten behöver skicka ett meddelande till konversationen som inte är ett direkt svar på något meddelande från användaren. Din robot kan till exempel behöva starta ett nytt samtalsämne eller skicka ett avskedsmeddelande i slutet av konversationen.

Om du vill skicka ett meddelande till en konversation som inte är ett direkt svar på ett meddelande från användaren utfärdar du den här begäran:

POST /v3/conversations/{conversationId}/activities

I den här begärande-URI:n ersätter du {conversationId} med konversationens ID.

Ange brödtexten för begäran till ett aktivitetsobjekt som du skapar för att representera svaret.

Anteckning

Bot Framework inför inga begränsningar för antalet meddelanden som en robot kan skicka. De flesta kanaler tillämpar dock begränsningsgränser för att hindra robotar från att skicka ett stort antal meddelanden på kort tid. Om roboten dessutom skickar flera meddelanden i snabb följd kanske kanalen inte alltid renderar meddelandena i rätt ordning.

Starta en konversation

Det kan finnas tillfällen då roboten behöver starta en konversation med en eller flera användare. Om du vill starta en konversation med en användare på en kanal måste roboten känna till dess kontoinformation och användarens kontoinformation på kanalen.

Tips

Om din robot kan behöva starta konversationer med sina användare i framtiden cachelagrar du användarkontoinformation, annan relevant information som användarinställningar och nationella inställningar samt tjänst-URL:en (för att använda som bas-URI i Begäran om starta konversation).

Starta en konversation genom att utfärda den här begäran:

POST /v3/conversations

Ange brödtexten för begäran till ett ConversationParameters-objekt som anger din robots kontoinformation och kontoinformationen för de användare som du vill inkludera i konversationen.

Anteckning

Alla kanaler stöder inte gruppkonversationer. Läs kanalens dokumentation för att avgöra om en kanal stöder gruppkonversationer och för att identifiera det maximala antalet deltagare som en kanal tillåter i en konversation.

I följande exempel visas en begäran som startar en konversation. I den här exempelbegäran https://smba.trafficmanager.net/teams representerar du 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.

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

Om konversationen upprättas med de angivna användarna innehåller svaret ett ID som identifierar konversationen.

{
    "id": "abcd1234"
}

Roboten kan sedan använda det här konversations-ID:t för att skicka ett meddelande till användarna i konversationen.

Ytterligare resurser