Dodawanie załączników multimediów do komunikatów za pomocą interfejsu API łącznika bota
Boty i kanały zwykle wymieniają ciągi tekstowe, ale niektóre kanały obsługują również wymianę załączników, co umożliwia botowi wysyłanie bogatszych wiadomości do użytkowników. Na przykład bot może wysyłać załączniki multimediów (takie jak obrazy, wideo, dźwięk, pliki) i karty zaawansowane. W tym artykule opisano sposób dodawania załączników multimediów do komunikatów przy użyciu usługi Bot Connector.
Porada
Aby uzyskać informacje o funkcjach obsługiwanych w poszczególnych kanałach, zobacz artykuł referencyjny dotyczący kanałów .
Dodawanie załącznika multimediów
Aby dodać załącznik multimedialny do wiadomości, utwórz obiekt Attachment , ustaw name
właściwość, ustaw contentUrl
właściwość na adres URL pliku multimedialnego i ustaw contentType
właściwość na odpowiedni typ nośnika (np. image/jpg, audio/wav, video/mp4). Następnie w obiekcie Activity reprezentującym komunikat określ Attachment
obiekt w tablicy attachments
.
W poniższym przykładzie pokazano żądanie, które wysyła wiadomość zawierającą tekst i pojedynczy załącznik obrazu. W tym przykładowym żądaniu https://smba.trafficmanager.net/teams
reprezentuje podstawowy identyfikator URI. Podstawowy identyfikator URI dla żądań, których problemy z botem mogą się różnić. Aby uzyskać szczegółowe informacje na temat ustawiania podstawowego identyfikatora URI, zobacz Dokumentacja interfejsu 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"
}
W przypadku kanałów obsługujących wbudowane pliki binarne obrazu można ustawić contentUrl
właściwość Attachment
base64 binarną obrazu (na przykład data:image/jpg; base64,iVBORw0KGgo...). Kanał wyświetli obraz lub adres URL obrazu obok ciągu tekstowego wiadomości.
{
"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"
}
Plik wideo lub plik audio można dołączyć do wiadomości przy użyciu tego samego procesu, co opisane powyżej dla pliku obrazu. W zależności od kanału wideo i audio mogą być odtwarzane w tekście lub mogą być wyświetlane jako link.
Uwaga
Bot może również odbierać komunikaty zawierające załączniki multimediów. Na przykład komunikat otrzymany przez bota może zawierać załącznik, jeśli kanał umożliwia użytkownikowi przekazanie zdjęcia do analizy lub przechowywania dokumentu.
Dodawanie załącznika audioCard
Dodanie załącznika AudioCard lub VideoCard jest takie samo jak dodanie załącznika multimediów. Na przykład poniższy kod JSON pokazuje, jak dodać kartę dźwiękową w załączniku multimediów.
{
"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"
}
Gdy kanał odbierze ten załącznik, rozpocznie odtwarzanie pliku audio. Jeśli użytkownik wchodzi w interakcję z dźwiękiem, wybierając na przykład pozycję Wstrzymaj, kanał wyśle wywołanie zwrotne do bota z kodem JSON, który wygląda następująco:
{
...
"type": "event",
"name": "media/pause",
"value": {
"url": // URL for media
"cardValue": {
// Supplementary parameter for this card
}
}
}
Nośnik nazwy zdarzenia /wstrzymywanie pojawi się w activity.name
polu. W poniższej tabeli znajduje się lista wszystkich nazw zdarzeń multimedialnych.
Zdarzenie | Opis |
---|---|
media/next | Klient pominął następny nośnik |
multimedia/wstrzymywanie | Klient wstrzymał odtwarzanie multimediów |
multimedia/odtwarzanie | Klient zaczął odtwarzać multimedia |
multimedia/poprzednie | Klient pominął poprzedni nośnik |
multimedia/wznawianie | Klient wznowił odtwarzanie multimediów |
multimedia/zatrzymywanie | Klient przestał odtwarzać multimedia |