Udostępnij za pośrednictwem


Dodawanie rozbudowanych załączników kart do komunikatów za pomocą interfejsu API łącznika bota

Niektóre kanały umożliwiają botowi wysyłanie rozbudowanych kart do użytkowników. Karta sformatowana jest załącznikiem zawierającym elementy interakcyjne, takie jak przyciski, tekst, obrazy, dźwięk, wideo itd.

W tym artykule opisano sposób tworzenia zaawansowanych kart, które można dołączyć do wiadomości. Zobacz, jak dodawać załączniki multimediów do wiadomości , aby uzyskać szczegółowe instrukcje dotyczące dodawania załącznika do wiadomości.

Typy bogatych kart

Bogata karta składa się z tytułu, opisu, linku i obrazów. Komunikat może zawierać wiele bogatych kart wyświetlanych w formacie listy lub karuzeli. Platforma Bot Framework obsługuje obecnie osiem typów rozbudowanych kart:

Typ karty opis
Karta adaptacyjna Dostosowywalna karta, która może zawierać dowolną kombinację tekstu, mowy, obrazów, przycisków i pól wejściowych. Zobacz obsługę poszczególnych kanałów.
Karta animacji Karta, która może odtwarzać animowane pliki GIF lub krótkie filmy wideo.
Karta audio Karta, która może odtworzyć plik audio.
Karta HeroCard Karta, która zazwyczaj zawiera jeden duży obraz, co najmniej jeden przycisk i tekst.
ThumbnailCard Karta, która zazwyczaj zawiera jeden obraz miniatury, co najmniej jeden przycisk i tekst.
Karta paragonów Karta, która umożliwia botowi dostarczenie potwierdzenia użytkownikowi. Zazwyczaj zawiera listę elementów do uwzględnienia na podstawie paragonu, podatku i całkowitej informacji oraz innego tekstu.
SignInCard Karta, która umożliwia botowi żądanie logowania użytkownika. Zazwyczaj zawiera tekst i co najmniej jeden przycisk, który użytkownik może kliknąć, aby zainicjować proces logowania.
Karta wideo Karta, która może odtwarzać filmy wideo.

Napiwek

Aby uzyskać informacje o tym, które funkcje są obsługiwane w każdym kanale, zobacz artykuł referencyjny dotyczący kanałów.

Przetwarzanie zdarzeń na kartach bogatych

Aby przetworzyć zdarzenia na kartach bogatych, użyj obiektów CardAction , aby określić, co powinno się zdarzyć, gdy użytkownik kliknie przycisk lub naciągnie sekcję karty. Każdy CardAction obiekt zawiera następujące właściwości:

Właściwość Type Opis
channelData string dane specyficzne dla kanału skojarzone z tą akcją
displayText string przetestuj, aby wyświetlić w kanale informacyjnym czatu, jeśli przycisk został kliknięty
text string tekst akcji
type string typ akcji (jedna z wartości określonych w poniższej tabeli)
title string tytuł przycisku
obraz string adres URL obrazu przycisku
wartość string wartość wymagana do wykonania określonego typu akcji

Uwaga

Przyciski w ramach kart adaptacyjnych nie są tworzone przy użyciu CardAction obiektów, ale zamiast tego używają schematu zdefiniowanego przez karty adaptacyjne. Zobacz Dodawanie karty adaptacyjnej do komunikatu , aby zapoznać się z przykładem dodawania przycisków do karty adaptacyjnej.

Aby prawidłowo działać, przypisz typ akcji do każdego elementu, który można kliknąć na karcie bohatera. W tej tabeli wymieniono i opisano dostępne typy akcji oraz właściwości, które powinny znajdować się we skojarzonej właściwości wartości.

Akcja messageBack karty ma bardziej uogólnione znaczenie niż inne akcje karty. Aby uzyskać więcej informacji na temat messageBack i innych typów akcji kart, zobacz sekcję Akcja karty schematu działania.

Type Opis Wartość
call Inicjuje połączenie telefoniczne. Miejsce docelowe połączenia telefonicznego w tym formacie: tel:123123123123.
downloadFile Pobiera plik. Adres URL pliku do pobrania.
imBack Wysyła wiadomość do bota i publikuje widoczną odpowiedź na czacie. Tekst wiadomości do wysłania.
messageBack Reprezentuje odpowiedź tekstową, która ma zostać wysłana za pośrednictwem systemu czatów. Opcjonalna wartość programowa do uwzględnienia w wygenerowanych komunikatach.
openUrl Otwiera adres URL w wbudowanej przeglądarce. Adres URL do otwarcia.
playAudio Odtwarza dźwięk. Adres URL dźwięku do odtwarzania.
playVideo Odtwarza wideo. Adres URL wideo do odtwarzania.
postBack Wysyła wiadomość do bota i może nie publikować widocznej odpowiedzi na czacie. Tekst wiadomości do wysłania.
showImage Wyświetla obraz. Adres URL obrazu do wyświetlenia.
signin Inicjuje proces logowania OAuth. Adres URL przepływu OAuth do zainicjowania.

Dodawanie karty Hero do wiadomości

Aby dodać załącznik do bogatej karty do wiadomości:

  1. Utwórz obiekt reprezentujący typ karty , którą chcesz dodać do wiadomości.
  2. Utwórz obiekt załącznika:
    • Ustaw jego contentType właściwość na typ nośnika karty.
    • Ustaw jego content właściwość na utworzony obiekt, aby reprezentować kartę.
  3. Attachment Dodaj obiekt do attachments tablicy komunikatu.

Napiwek

Komunikaty zawierające zaawansowane załączniki kart zwykle nie określają elementu text.

Niektóre kanały umożliwiają dodawanie wielu rozbudowanych kart do tablicy attachments w wiadomości. Ta funkcja może być przydatna w scenariuszach, w których chcesz udostępnić użytkownikowi wiele opcji. Na przykład jeśli bot pozwala użytkownikom zarezerwować pokoje hotelowe, może przedstawić użytkownikowi listę bogatych kart, które pokazują typy dostępnych pokoi. Każda karta może zawierać obraz i listę udogodnień odpowiadających typowi pokoju, a użytkownik może wybrać typ pokoju, naciskając kartę lub klikając przycisk.

Napiwek

Aby wyświetlić wiele zaawansowanych kart w formacie listy, ustaw właściwość obiektu attachmentLayout Activity na "list". Aby wyświetlić wiele bogatych kart w formacie karuzeli, ustaw Activity właściwość obiektu attachmentLayout na "karuzelę". Jeśli kanał nie obsługuje formatu karuzeli, wyświetli zaawansowane karty w formacie listy, nawet jeśli attachmentLayout właściwość określa "karuzelę".

W poniższym przykładzie przedstawiono pełny komunikat zawierający pojedynczy załącznik karty Hero. W tym przykładowym żądaniu https://smba.trafficmanager.net/teams reprezentuje podstawowy identyfikator URI; podstawowy identyfikator URI dla żądań, które mogą być różne. 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"
    },
    "attachments": [
        {
            "contentType": "application/vnd.microsoft.card.hero",
            "content": {
                "title": "title goes here",
                "subtitle": "subtitle goes here",
                "text": "descriptive text goes here",
                "images": [
                    {
                        "url": "https://www.publicdomainpictures.net/pictures/30000/t2/duck-on-a-rock.jpg",
                        "alt": "picture of a duck",
                        "tap": {
                            "type": "playAudio",
                            "value": "url to an audio track of a duck call goes here"
                        }
                    }
                ],
                "buttons": [
                    {
                        "type": "playAudio",
                        "title": "Duck Call",
                        "value": "url to an audio track of a duck call goes here"
                    },
                    {
                        "type": "openUrl",
                        "title": "Watch Video",
                        "image": "https://www.publicdomainpictures.net/pictures/30000/t2/duck-on-a-rock.jpg",
                        "value": "url goes here of the duck in flight"
                    }
                ]
            }
        }
    ],
    "replyToId": "5d5cdc723"
}

Dodawanie karty adaptacyjnej do komunikatu

Karta adaptacyjna może zawierać dowolną kombinację tekstu, mowy, obrazów, przycisków i pól wejściowych. Karty adaptacyjne są tworzone przy użyciu formatu JSON określonego w kartach adaptacyjnych, co zapewnia pełną kontrolę nad zawartością i formatem karty.

Skorzystaj z informacji w witrynie Kart adaptacyjnych, aby zrozumieć schemat karty adaptacyjnej, zapoznać się z elementami karty adaptacyjnej i zobaczyć przykłady JSON, których można użyć do tworzenia kart o różnej kompozycji i złożoności. Ponadto możesz użyć interaktywnego wizualizatora, aby zaprojektować ładunki kart adaptacyjnych i dane wyjściowe karty w wersji zapoznawczej.

W poniższym przykładzie przedstawiono pojedynczy obiekt załącznika karty adaptacyjnej reprezentujący przypisanie pracy. Aby wysłać go do użytkownika, należy dodać go jako załącznik w wiadomości.

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "Container",
      "items": [
        {
          "type": "TextBlock",
          "text": "Publish Adaptive Card schema",
          "weight": "bolder",
          "size": "medium"
        },
        {
          "type": "ColumnSet",
          "columns": [
            {
              "type": "Column",
              "width": "auto",
              "items": [
                {
                  "type": "Image",
                  "url": "https://pbs.twimg.com/profile_images/3647943215/d7f12830b3c17a5a9e4afcc370e3a37e_400x400.jpeg",
                  "size": "small",
                  "style": "person"
                }
              ]
            },
            {
              "type": "Column",
              "width": "stretch",
              "items": [
                {
                  "type": "TextBlock",
                  "text": "Matt Hidinger",
                  "weight": "bolder",
                  "wrap": true
                },
                {
                  "type": "TextBlock",
                  "spacing": "none",
                  "text": "Created {{DATE(2017-02-14T06:08:39Z, SHORT)}}",
                  "isSubtle": true,
                  "wrap": true
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "type": "Container",
      "items": [
        {
          "type": "TextBlock",
          "text": "Now that we have defined the main rules and features of the format, we need to produce a schema and publish it to GitHub. The schema will be the starting point of our reference documentation.",
          "wrap": true
        },
        {
          "type": "FactSet",
          "facts": [
            {
              "title": "Board:",
              "value": "Adaptive Card"
            },
            {
              "title": "List:",
              "value": "Backlog"
            },
            {
              "title": "Assigned to:",
              "value": "Matt Hidinger"
            },
            {
              "title": "Due date:",
              "value": "Not set"
            }
          ]
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.ShowCard",
      "title": "Comment",
      "card": {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "Input.Text",
            "id": "comment",
            "isMultiline": true,
            "placeholder": "Enter your comment"
          }
        ],
        "actions": [
          {
            "type": "Action.Submit",
            "title": "OK"
          }
        ]
      }
    },
    {
      "type": "Action.OpenUrl",
      "title": "View",
      "url": "https://adaptivecards.io"
    }
  ]
}

Wynikowa karta zawiera tytuł, informacje o tym, kto utworzył kartę (ich imię i awatar), kiedy karta została utworzona, opis przydziałów pracy i informacje związane z przypisaniem. Istnieją również przyciski, które można kliknąć, aby dodać komentarz do przypisania pracy lub wyświetlić go:

Przykładowe przypomnienie kalendarza jako karta adaptacyjna.

Dodatkowe zasoby