Delen via


Berichten verzenden en ontvangen met de Bot Connector-API

Met de Bot Connector-service kan een bot communiceren via meerdere kanalen, zoals Email, Slack en meer. Het vergemakkelijkt de communicatie tussen bot en gebruiker, door activiteiten van bot naar kanaal en van kanaal naar bot door te geven. Elke activiteit bevat informatie die wordt gebruikt voor het routeren van het bericht naar de juiste bestemming, samen met informatie over wie het bericht heeft gemaakt, de context van het bericht en de ontvanger van het bericht. In dit artikel wordt beschreven hoe u de Bot Connector-service gebruikt om berichtactiviteiten uit te wisselen tussen bot en gebruiker op een kanaal.

Een bericht beantwoorden

Een antwoord maken

Wanneer de gebruiker een bericht naar uw bot verzendt, ontvangt uw bot het bericht als een activiteitsobject van het type bericht. Als u een antwoord op een bericht van een gebruiker wilt maken, maakt u een nieuw Activity object en stelt u eerst deze eigenschappen in:

Eigenschap Waarde
conversatie Stel deze eigenschap in op de inhoud van de conversation eigenschap in het bericht van de gebruiker.
from Stel deze eigenschap in op de inhoud van de recipient eigenschap in het bericht van de gebruiker.
landinstelling Stel deze eigenschap in op de inhoud van de locale eigenschap in het bericht van de gebruiker, indien opgegeven.
geadresseerde Stel deze eigenschap in op de inhoud van de from eigenschap in het bericht van de gebruiker.
replyToId Stel deze eigenschap in op de inhoud van de id eigenschap in het bericht van de gebruiker.
type Stel deze eigenschap in op bericht.

Stel vervolgens de eigenschappen in waarmee de informatie wordt opgegeven die u aan de gebruiker wilt doorgeven. U kunt bijvoorbeeld de text eigenschap instellen om de tekst op te geven die in het bericht moet worden weergegeven, de speak eigenschap instellen om tekst op te geven die moet worden gesproken door uw bot en de attachments eigenschap instellen om mediabijlagen of rtf-kaarten op te nemen in het bericht. Zie Berichten maken voor gedetailleerde informatie over veelgebruikte berichteigenschappen.

Het antwoord verzenden

Gebruik de serviceUrl eigenschap in de binnenkomende activiteit om de basis-URI te identificeren die uw bot moet gebruiken om het antwoord te geven.

Als u het antwoord wilt verzenden, verzendt u deze aanvraag:

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

Vervang in deze aanvraag-URI {conversationId} door de waarde van de eigenschap van het conversation object id binnen uw (antwoord)activiteit en vervang {activityId} door de waarde van de replyToId eigenschap binnen uw (antwoord)activiteit. Stel de hoofdtekst van de aanvraag in op het activiteitsobject dat u hebt gemaakt om uw antwoord weer te geven.

In het volgende voorbeeld ziet u een aanvraag waarmee een eenvoudig antwoord met alleen tekst wordt verzonden naar een bericht van een gebruiker. In dit voorbeeld vertegenwoordigt de aanvraag https://smba.trafficmanager.net/teams de basis-URI; de basis-URI voor aanvragen die mogelijk verschillen van uw botproblemen. Zie API-verwijzing voor meer informatie over het instellen van de basis-URI.

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

Een (niet-beantwoorden) bericht verzenden

Het merendeel van de berichten die uw bot verzendt, wordt beantwoord aan berichten die van de gebruiker worden ontvangen. Het kan echter voorkomen dat uw bot een bericht naar het gesprek moet verzenden dat geen direct antwoord is op een bericht van de gebruiker. Uw bot moet bijvoorbeeld aan het einde van het gesprek een nieuw gespreksonderwerp starten of een afscheidsbericht verzenden.

Als u een bericht wilt verzenden naar een gesprek dat geen direct antwoord is op een bericht van de gebruiker, doet u dit verzoek:

POST /v3/conversations/{conversationId}/activities

Vervang in deze aanvraag-URI {conversationId} door de id van het gesprek.

Stel de hoofdtekst van de aanvraag in op een activiteitsobject dat u maakt om uw antwoord weer te geven.

Notitie

Het Bot Framework legt geen beperkingen op voor het aantal berichten dat een bot kan verzenden. De meeste kanalen dwingen echter beperkingslimieten af om te voorkomen dat bots in korte tijd een groot aantal berichten verzenden. Bovendien, als de bot meerdere berichten snel achter elkaar verzendt, kan het kanaal de berichten niet altijd in de juiste volgorde weergeven.

Een gesprek starten

Het kan gebeuren dat uw bot een gesprek moet starten met een of meer gebruikers. Als u een gesprek wilt starten met een gebruiker op een kanaal, moet uw bot de accountgegevens en de accountgegevens van de gebruiker op dat kanaal kennen.

Tip

Als uw bot in de toekomst mogelijk gesprekken met de gebruikers moet starten, slaat u gebruikersaccountgegevens, andere relevante informatie, zoals gebruikersvoorkeuren en landinstelling, en de service-URL (te gebruiken als de basis-URI in de aanvraag Gesprek starten) in de cache.

Als u een gesprek wilt starten, doet u dit verzoek:

POST /v3/conversations

Stel de hoofdtekst van de aanvraag in op een ConversationParameters-object dat de accountgegevens van uw bot opgeeft en de accountgegevens van de gebruiker(s) die u in het gesprek wilt opnemen.

Notitie

Niet alle kanalen ondersteunen groepsgesprekken. Raadpleeg de documentatie van het kanaal om te bepalen of een kanaal groepsgesprekken ondersteunt en om het maximum aantal deelnemers te bepalen dat een kanaal toestaat in een gesprek.

In het volgende voorbeeld ziet u een aanvraag waarmee een gesprek wordt gestart. In dit voorbeeld vertegenwoordigt de aanvraag https://smba.trafficmanager.net/teams de basis-URI; de basis-URI voor aanvragen die mogelijk verschillen van uw botproblemen. Zie API-verwijzing voor meer informatie over het instellen van de basis-URI.

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

Als het gesprek tot stand is gebracht met de opgegeven gebruikers, bevat het antwoord een id die het gesprek identificeert.

{
    "id": "abcd1234"
}

Uw bot kan deze gespreks-id vervolgens gebruiken om een bericht te verzenden naar de gebruiker(s) in het gesprek.

Aanvullende resources