Delen via


Mediabijlagen toevoegen aan berichten met de Bot Connector-API

Bots en kanalen wisselen meestal teksttekenreeksen uit, maar sommige kanalen ondersteunen ook het uitwisselen van bijlagen, waardoor uw bot uitgebreidere berichten naar gebruikers kan verzenden. Uw bot kan bijvoorbeeld mediabijlagen (zoals afbeeldingen, video's, audio, bestanden) en uitgebreide kaarten verzenden. In dit artikel wordt beschreven hoe u mediabijlagen toevoegt aan berichten met behulp van de Bot Connector-service.

Tip

Zie het naslagartikel over kanalen voor informatie over welke functies op elk kanaal worden ondersteund.

Een mediabijlage toevoegen

Als u een mediabijlage aan een bericht wilt toevoegen, maakt u een bijlageobject , stelt u de name eigenschap in, stelt u de contentUrl eigenschap in op de URL van het mediabestand en stelt u de contentType eigenschap in op het juiste mediatype (zoals image/jpg, audio/wav, video/mp4). Geef vervolgens in het object Activiteit dat uw bericht vertegenwoordigt het Attachment object in de attachments matrix op.

In het volgende voorbeeld ziet u een aanvraag waarmee een bericht met tekst en één afbeeldingsbijlage wordt verzonden. 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": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "Here's a picture of the duck I was telling you about.",
    "attachments": [
        {
            "contentType": "image/jpg",
            "contentUrl": "https://www.publicdomainpictures.net/pictures/30000/t2/duck-on-a-rock.jpg",
            "name": "duck-on-a-rock.jpg"
        }
    ],
    "replyToId": "5d5cdc723"
}

Voor kanalen die inline binaire bestanden van een afbeelding ondersteunen, kunt u de contentUrl eigenschap van de Attachment instellen op een base64-binair bestand van de afbeelding (bijvoorbeeld data:image/jpg; base64,iVBORw0KGgo...). In het kanaal wordt de afbeelding of de URL van de afbeelding weergegeven naast de tekenreeks van het bericht.

{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "text": "Here's a picture of the duck I was telling you about.",
    "attachments": [
        {
            "contentType": "image/jpg",
            "contentUrl": "data:image/jpg;base64,iVBORw0KGgo...",
            "name": "duck-on-a-rock.jpg"
        }
    ],
    "replyToId": "5d5cdc723"
}

U kunt een videobestand of audiobestand aan een bericht toevoegen met behulp van hetzelfde proces als hierboven beschreven voor een afbeeldingsbestand. Afhankelijk van het kanaal kunnen de video en audio inline worden afgespeeld of als een koppeling worden weergegeven.

Notitie

Uw bot kan ook berichten ontvangen die mediabijlagen bevatten. Een bericht dat uw bot ontvangt, kan bijvoorbeeld een bijlage bevatten als het kanaal de gebruiker in staat stelt een foto te uploaden die moet worden geanalyseerd of een document kan worden opgeslagen.

Een AudioCard-bijlage toevoegen

Het toevoegen van een AudioCard - of VideoCard-bijlage is hetzelfde als het toevoegen van een mediabijlage. In de volgende JSON ziet u bijvoorbeeld hoe u een audiokaart toevoegt aan de mediabijlage.

{
    "type": "message",
    "from": {
        "id": "12345678",
        "name": "sender's name"
    },
    "conversation": {
        "id": "abcd1234",
        "name": "conversation's name"
   },
   "recipient": {
        "id": "1234abcd",
        "name": "recipient's name"
    },
    "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.audio",
      "content": {
        "title": "Allegro in C Major",
        "subtitle": "Allegro Duet",
        "text": "No Image, No Buttons, Autoloop, Autostart, Sharable",
        "duration": "PT2M55S",
        "media": [
          {
            "url": "https://contoso.com/media/AllegrofromDuetinCMajor.mp3"
          }
        ],
        "shareable": true,
        "autoloop": true,
        "autostart": true,
        "value": {
            // Supplementary parameter for this card
        }
      }
    }],
    "replyToId": "5d5cdc723"
}

Zodra het kanaal deze bijlage ontvangt, wordt het audiobestand afgespeeld. Als een gebruiker bijvoorbeeld audio gebruikt door Onderbreken te selecteren, stuurt het kanaal een callback naar de bot met een JSON die er ongeveer als volgt uitziet:

{
    ...
    "type": "event",
    "name": "media/pause",
    "value": {
        "url": // URL for media
        "cardValue": {
            // Supplementary parameter for this card
        }
    }
}

De media-gebeurtenisnaam media/pauze wordt weergegeven in het activity.name veld. Raadpleeg de onderstaande tabel voor een lijst met alle namen van media-gebeurtenissen.

Gebeurtenis Description
media/volgende De client is overgeslagen naar het volgende medium
media/onderbreken De client heeft het afspelen van media onderbroken
media/afspelen De client is begonnen met het afspelen van media
media/vorige De client is overgeslagen naar de vorige media
media/cv De client heeft het afspelen van media hervat
media/stoppen De client is gestopt met het afspelen van media

Aanvullende resources