Udostępnij za pośrednictwem


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

Dodatkowe zasoby