Share via


Ajouter des pièces jointes multimédias aux messages avec l’API Bot Connector

Les robots et les canaux échangent généralement des chaînes de texte, mais certains canaux prennent également en charge l’échange de pièces jointes, ce qui permet à votre robot d’envoyer des messages enrichis aux utilisateurs. Par exemple, votre bot peut envoyer des pièces jointes multimédias (telles que des images, des vidéos, de l’audio, des fichiers) et des cartes enrichies. Cet article décrit comment ajouter des pièces jointes multimédia à des messages à l’aide du service Bot Connector.

Conseil

Pour plus d’informations sur les fonctionnalités prises en charge sur chaque canal, consultez l’article de référence sur les canaux .

Ajouter une pièce jointe multimédia

Pour ajouter une pièce jointe multimédia à un message, créez un objet Attachment , définissez la name propriété, définissez la contentUrl propriété sur l’URL du fichier multimédia et définissez la contentType propriété sur le type de média approprié (par exemple image/jpg, audio/wav, vidéo/mp4). Ensuite, dans l’objet Activité qui représente votre message, spécifiez votre objet Attachment dans le tableau attachments.

L’exemple ci-après présente une demande qui envoie un message contenant du texte et une image en pièce jointe. Dans cet exemple de demande, https://smba.trafficmanager.net/teams représente l’URI de base. L’URI de base pour les demandes émises par votre robot peut être différente. Pour plus d’informations sur la définition de l’URI de base, voir Informations de référence sur l’API.

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

Pour les canaux qui prennent en charge les fichiers binaires inline d’une image, vous pouvez définir la contentUrl propriété de sur Attachment un binaire base64 de l’image (par exemple, data :image/jpg ; base64,iVBORw0KGgo...). Le canal affiche l’image ou l’URL de l’image en regard de la chaîne de texte du message.

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

Vous pouvez joindre un fichier vidéo ou audio à un message en procédant comme décrit ci-dessus pour un fichier image. Selon le canal, la vidéo et l’audio peuvent être lus en ligne ou affichés sous forme de liens.

Notes

Votre robot peut également recevoir des messages contenant des pièces jointes multimédia. Par exemple, un message que votre robot reçoit peut contenir une pièce jointe si le canal permet à l’utilisateur de charger une photo à analyser ou un document à stocker.

Ajouter une pièce jointe AudioCard

L’ajout d’une pièce jointe AudioCard ou VideoCard est similaire à l’ajout d’une pièce jointe multimédia. Par exemple, le code JSON suivant montre comment ajouter une carte audio dans la pièce jointe multimédia.

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

Lorsque le canal reçoit cette pièce jointe, il commence à lire le fichier audio. Si un utilisateur interagit avec l’audio en sélectionnant Suspendre, par exemple, le canal envoie un rappel au bot avec un JSON qui ressemble à ceci :

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

Le nom de l’événement multimédia média/pause s’affiche dans le champ activity.name. Référencez le tableau ci-dessous pour obtenir la liste de tous les noms d’événements multimédia.

Événement Description
média/suivant Le client est passé au média suivant
média/pause Le client a mis en pause la lecture du média
média/lecture Le client a commencé la lecture du média
média/précédent Le client est passé au média précédent
média/reprise Le client a repris la lecture du média
média/arrêt Le client a arrêté la lecture du média

Ressources supplémentaires