Teams でカードを書式設定する

重要

このドキュメントはレガシと見なされます。 アダプティブ カードでのテキストの書式設定に関連する包括的な情報とリソースについては、 アダプティブ カードのドキュメント ハブにアクセスしてください。

スクリーンショットは、Microsoft アダプティブ カード Web サイトのホーム ページを示しています。

アダプティブ カード ドキュメント ハブには、完全かつ最新のリファレンス ドキュメント、更新された Adaptive Card Designer、組み込みの JSON サンプル、デザインのベスト プラクティス、アダプティブ カード機能の詳細なリリース履歴が用意されています。 詳細については、「 アダプティブ カードのドキュメント ハブと新しいアダプティブ カードの更新の概要」を参照してください。

カードにリッチ テキストの書式設定を追加する 2 つの方法を次に示します。

カードは、タイトル プロパティや字幕プロパティではなく、テキスト プロパティでのみ書式設定をサポートします。 カードの種類に応じて、XML または HTML のサブセット、または Markdown を使用して書式設定を指定できます。 アダプティブ カードの現在および将来の開発では、Markdown の書式設定をお勧めします。

書式設定のサポートはカードの種類によって異なります。 カードのレンダリングは、デスクトップとモバイルの Microsoft Teams クライアント、およびデスクトップ ブラウザーの Teams で若干異なる場合があります。

Teams カードにはインライン画像を含めることができます。 サポートされているイメージ形式は、.png、.jpg、または .gif 形式です。 サイズは 1024 x 1024 ピクセル以内、ファイル サイズは 1 MB 未満にしてください。 アニメーション .gif 画像はサポートされていません。 詳細については、「カードの種類」を参照してください。

Microsoft 365 グループ用のアダプティブ カードとコネクタ カードは、サポートされている特定のスタイルを含む Markdown で書式設定できます。

Markdown でカードを書式設定する

次のカードタイプは、Teams での Markdown 書式設定をサポートしています。

  • アダプティブ カード: マークダウンは、アダプティブ カード Textblock フィールド、 Fact.Title 、 Fact.Value でサポートされています。 HTML はアダプティブ カードではサポートされていません。
  • Microsoft 365 グループ用コネクタ カード: テキスト フィールドの Microsoft 365 グループ用コネクタ カードでは、マークダウンと制限付き HTML がサポートされています。

注:

マークダウンは、ボットの OAuth サインイン カードではサポートされていません。

リスト内の改行に \r または \n エスケープ シーケンスを使用して、アダプティブ カードに改行を使用できます。 書式設定は、デスクトップ版とモバイル版の アダプティブ カード用 Teams で異なります。 カード ベースのメンションは、Web、デスクトップ、およびモバイル クライアントでサポートされています。 情報マスキングプロパティを使用して、アダプティブ カード Input.Text 入力要素内のユーザーからのパスワードや機密情報などの特定の情報をマスクできます。 width オブジェクトを使用して、アダプティブ カードの幅を拡張できます。 アダプティブ カード内で先行入力サポートを有効にし、ユーザーが入力を入力するときに入力選択肢のセットをフィルタリングできます。 msteams プロパティを使用して、Stageview で画像を選択的に表示する機能を追加できます。

書式設定は、アダプティブ カードおよびコネクタ カード用の Teams のデスクトップ バージョンとモバイル バージョンで異なります。 このセクションでは、アダプティブ カードとコネクタ カードの Markdown 書式の例を紹介します。

次の表に、Textblock、Fact.Title、および Fact.Value でサポートされているスタイルを示します。

Style 例 Markdown
太字 Bold **Bold**
斜体 Italic _Italic_
記号付きリスト
  • text
  • text
- Item 1\r- Item 2\r- Item 3
番号付きリスト
  1. text
  2. text
1. Green\r2. Orange\r3. Blue
Hyperlinks Bing [Title](url)

次の Markdown タグはサポートされていません。

  • ヘッダー
  • テーブル
  • 画像
  • 事前書式設定済みのテキスト
  • Blockquotes

アダプティブ カードの改行

リスト内の改行には、\r または \n のエスケープ シーケンスを使用できます。 リストで \n\n を使用すると、リスト内の次の要素がインデントされます。 TextBlock の他の場所で改行が必要な場合は、\n\n を使用してください。

アダプティブ カードのモバイルとデスクトップの違い

デスクトップでは、アダプティブ カードの Markdown 書式設定は、Web ブラウザーと Teams クライアント アプリケーションの両方で次の画像のように表示されます。

スクリーンショットは、Teams デスクトップ クライアントでのアダプティブ カード マークダウン書式設定の例を示しています。

iOS では、アダプティブ カード マークダウン書式設定が次の図のように表示されます。 スクリーンショットは、Teams iOS プラットフォームでのアダプティブ カード マークダウン書式設定の例を示しています。

Android では、アダプティブ カード Markdown の書式設定が次の図のように表示されます。

スクリーンショットは、Teams Android プラットフォームでのアダプティブ カード マークダウン書式設定の例を示しています。

アダプティブ カードの日付と時刻の書式設定とローカライズの詳細については、「 アダプティブ カードのテキスト機能」を参照してください。

アダプティブ カード書式のサンプル

次のコードは、アダプティブ カードの書式設定の例を示しています。

{
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "This is some **bold** text"
        },
        {
            "type": "TextBlock",
            "text": "This is some _italic_ text"
        },
        {
            "type": "TextBlock",
            "text": "- Bullet \r- List \r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "1. Numbered\r2. List\r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Check out [Adaptive Cards](https://adaptivecards.microsoft.com/?topic=welcome)"
        }
    ]
}

アダプティブ カードでは絵文字がサポートされています。 次のカード ペイロードには、絵文字付きのアダプティブ カードが表示されます:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "Container",
      "items": [
        {
          "type": "TextBlock",
          "text": "Publish Adaptive Card with emojis 🥰",
          "weight": "bolder",
          "size": "medium"
        }
      ]
    }
  ]
}

スクリーンショットは、絵文字付きのアダプティブ カードを示しています。

注:

REST API を使用している場合は、要求ヘッダーで charset=UTF-8 を設定して、アダプティブ カードに絵文字を追加します。

アダプティブ カード内でのサポートのメンション

ボットやメッセージ拡張機能応答のアダプティブ カード本文内に @mentions を追加できます。 カードに @mentions を追加するには、 チャネルおよびグループ チャットの会話でのメッセージ ベースのメンションと同じ通知ロジックとレンダリングに従います。

ボットとメッセージ拡張機能には、カード コンテンツ内の TextBlock 要素と FactSet 要素に言及を含めることができます。

注:

  • チャネルとチームのメンションは、ボット メッセージではサポートされていません。
  • 1 つのアダプティブ カード メッセージに複数のユーザーを @mention できますが、メッセージ サイズの制限が受信 Webhook の場合は 28 KB、 ボット メッセージの場合は 100 KB を超えないようにしてください。
  • 受信 Webhook から送信されたアダプティブ カードは、ユーザーのメンションのみをサポートし、ボットのメンションはサポートしていません。

アダプティブ カードにメンションを含めるには、アプリに次の要素を含める必要があります。

  • サポートされているアダプティブカード要素の <at>username</at>。
  • カード コンテンツの msteams プロパティ内の mention オブジェクトには、言及されているユーザーの Teams ユーザー ID が含まれています。
  • userId は、ボット ID と特定のユーザーに固有です。 特定のユーザーを @mention するために使用できます。 userId は、ユーザー ID の取得 で説明されているオプションの 1 つを使用して取得できます。

メンション付きアダプティブ カードのサンプル

次のコードは、アダプティブ カードとメンションの例を示しています。

{
  "contentType": "application/vnd.microsoft.card.adaptive",
  "content": {
    "type": "AdaptiveCard",
    "body": [
      {
        "type": "TextBlock",
        "text": "Hi <at>John Doe</at>"
      }
    ],
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0",
    "msteams": {
      "entities": [
        {
          "type": "mention",
          "text": "<at>John Doe</at>",
          "mentioned": {
            "id": "29:123124124124",
            "name": "John Doe"
          }
        }
      ]
    }
  }
}

ユーザー メンションの Microsoft Entra オブジェクト ID と UPN

Teams プラットフォームでは、既存のメンメンション ID に加えて、Microsoft Entra オブジェクト ID とユーザー プリンシパル名 (UPN) を使用してユーザーをメンションできます。 アダプティブ カードを備えたボットと受信 Webhook を備えたコネクタは、2 つのユーザー メンション ID をサポートします。

次の表に、新しくサポートされたユーザー メンション ID を示します。

ID サポート機能 説明 例
Microsoft Entra オブジェクト ID ボット、コネクタ Microsoft Entra ユーザーのオブジェクト ID 49c4641c-ab91-4248-aebb-6a7de286397b
UPN ボット、コネクタ Microsoft Entra ユーザーの UPN john.smith@microsoft.com

アダプティブ カードを使用したボットでのユーザー メンション

ボットは、既存の ID に加えて、Microsoft Entra オブジェクト ID と UPN を持つユーザー メンメンションをサポートします。 2 つの新しい ID のサポートは、テキスト メッセージ、アダプティブ カード本体、およびメッセージ拡張応答のボットで利用できます。 ボットは、会話および invoke シナリオでの言及 ID をサポートします。 ユーザーは、ID で @mentioned されると、アクティビティ フィードの通知を受け取ります。

注:

Bot のアダプティブ カードを使用したユーザーのメンションには、スキーマの更新と UI/UX の変更は必要ありません。

例

アダプティブ カードを使用するボットでのユーザー メンションの例は次のとおりです。

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.0",
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
    }
  ],
  "msteams": {
    "entities": [
      {
        "type": "mention",
        "text": "<at>Adele UPN</at>",
        "mentioned": {
          "id": "AdeleV@contoso.onmicrosoft.com",
          "name": "Adele Vance"
        }
      },
      {
        "type": "mention",
        "text": "<at>Adele Microsoft Entra ID</at>",
        "mentioned": {
          "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
          "name": "Adele Vance"
        }
      }
    ]
  }
}

次の画像は、ボットのアダプティブ カードでのユーザー メンションを示しています。

スクリーンショットは、アダプティブ カードを使用したボットでのユーザー メンションを示しています。

アダプティブ カードを使用した受信 Webhook でのユーザー メンション

受信 Webhook は、Microsoft Entra オブジェクト ID と UPN を持つアダプティブ カードでのユーザーメンションのサポートを開始します。

注:

  • Microsoft Entra オブジェクト ID と UPN をサポートするために、受信 Webhook のスキーマでユーザー メンメンションを有効にします。
  • Microsoft Entra オブジェクト ID と UPN を使用したユーザーのメンションには、UI/UX の変更は必要ありません。
例

受信 Webhook でのユーザー メンションの例を次に示します。

{
    "type": "message",
    "attachments": [
        {
        "contentType": "application/vnd.microsoft.card.adaptive",
        "content": {
            "type": "AdaptiveCard",
            "body": [
                {
                    "type": "TextBlock",
                    "size": "Medium",
                    "weight": "Bolder",
                    "text": "Sample Adaptive Card with User Mention"
                },
                {
                    "type": "TextBlock",
                    "text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
                }
            ],
            "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
            "version": "1.0",
            "msteams": {
                "entities": [
                    {
                        "type": "mention",
                        "text": "<at>Adele UPN</at>",
                        "mentioned": {
                          "id": "AdeleV@contoso.onmicrosoft.com",
                          "name": "Adele Vance"
                        }
                      },
                      {
                        "type": "mention",
                        "text": "<at>Adele Microsoft Entra ID</at>",
                        "mentioned": {
                          "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
                          "name": "Adele Vance"
                        }
                      }
                ]
            }
        }
    }]
}

次の図は、受信 Webhook でのユーザー メンションを示しています。

スクリーンショットは、[受信 Webhook] でのユーザーのメンメンションを示しています。

アダプティブ カードの People アイコン

People アイコンは、ユーザーがアダプティブ カードでユーザーの画像を表示するのに役立ちます。 画像を挿入し、画像でサポートされているすべてのプロパティを適用できます。

アダプティブ カードでサポートされている人物アイコンには、次の 2 種類があります。

  • ペルソナ: アダプティブ カードに 1 人のユーザーを表示する場合は、ユーザーのアイコンとユーザーの名前が表示されます。

    次の JSON コードは、ペルソナ カードの例です。

    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0.0",
      "body": [
    {
          "type": "TextBlock",
          "text": "Persona",
          "weight": "bolder"
        },
        {
          "type": "Component",
          "name": "graph.microsoft.com/user",
          "view": "compact",
          "properties": {
            "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
            "displayName": "Daniela Mandera",
            "userPrincipalName": "damandera@microsoft.com"
          }
        }
      ]
    }
    
  • ペルソナ セット: アダプティブ カードに複数のユーザーを表示する場合は、ユーザーのユーザー アイコンのみが表示されます。

    次の JSON コードは、ペルソナ セットの例です。

    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0.0",
      "body": [
        {
          "type": "TextBlock",
          "text": "Persona Set",
          "weight": "bolder"
        },
        {
          "type": "Component",
          "name": "graph.microsoft.com/users",
          "view": "compact",
          "properties": {
            "users": [
              {
                "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
                "displayName": "Daniela Mandera",
                "userPrincipalName": "damandera@microsoft.com"
              },
              {
                "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
                "displayName": "Daniela Mandera",
                "userPrincipalName": "damandera@microsoft.com"
              }
            ]
          }
        }
      ]
    }
    

    注:

    アダプティブ カードのペルソナとペルソナ セットのスタイルをカスタマイズすることはできません。

次の画像は、アダプティブ カードの人物アイコンの例です。

スクリーンショットは、アダプティブ カードのペルソナとペルソナ セットの種類の人物アイコンの例を示しています。

Schema

次の表に、 Component 要素のプロパティを示します。

プロパティ名 説明
type component
name graph.microsoft.com/users を使用して、organization全体のすべてのメンバーを検索する
view compact
properties コンポーネント テンプレートに渡される
id ユーザーの MRI
displayName ユーザーの名前
userPrincipalName Microsoft Entra ID のアカウントのユーザーのプリンシパル名

アダプティブ コンポーネントは、 テンプレート 要素とネイティブ アダプティブ カード要素を利用した高レベルのコンポーネントです。 型componentはカード体内の任意の場所で使用でき、コンポーネント データは properties 属性で定義されます。 properties の下のコンポーネント データは、コンポーネントに直接渡されます。 properties プロパティは、ペルソナとペルソナ セットの形式を定義し、propertiesの下にある他のすべてのプロパティは、アダプティブ カード スキーマのcomponentの種類によって無視されます。

ボットは、メンバーのリストと、Teams ユーザー ID やMicrosoft Entra情報 (name、id、userPrincipalNameなど) を含むメンバーの基本的なユーザー プロファイルを照会できます。 詳細については、「 名簿またはユーザー プロファイルの取得」を参照してください。

次の画像は、Teams デスクトップおよびモバイル クライアントのアダプティブ カードのユーザー アイコンを示しています。

デスクトップ クライアント:

Teams デスクトップ クライアントのアダプティブ カードのペルソナ アイコンとペルソナ セット アイコンを示すスクリーンショット。

ユーザーがユーザー アイコンにカーソルを合わせると、そのユーザーのユーザー カードが表示されます。

モバイル クライアント

スクリーンショットは、Teams モバイル クライアントで設定されたペルソナおよびペルソナのユーザー アイコンの例を示しています。

スクリーンショットは、Teams モバイル クライアントで設定されたペルソナとペルソナのユーザー アイコンの別の例を示しています。

ユーザーがユーザー アイコンを選択すると、そのユーザーのユーザー カードが表示されます。

アダプティブ カードの情報マスキング

情報マスキングプロパティを使用して、アダプティブ カード Input.Text 入力要素内のユーザーからのパスワードや機密情報などの特定の情報をマスクします。

注:

この機能は、クライアント側の情報マスキングのみをサポートします。 マスキングされた入力テキストは、ボット構成中に指定された HTTPS エンドポイント アドレスにクリア テキストとして送信されます。

アダプティブ カードで情報をマスクするには、 style プロパティを typeinput.text に追加し、その値を password に設定します。

マスキング プロパティを備えたアダプティブ カードのサンプル

次のコードは、マスキング プロパティを持つアダプティブ カードの例を示しています。

{
    "type": "Input.Text",
    "id": "secretThing",
    "style": "password",
},

次の画像は、アダプティブ カードのマスキング情報の例です。

アダプティブ カードのマスク情報ビューを示すスクリーンショット。

全幅アダプティブ カード

msteams プロパティを使用すると、アダプティブ カードの幅を広げ、余分なキャンバス領域を利用できます。 次のセクションでは、プロパティの使用方法について説明します。

注:

モバイルや会議のサイドパネルなどの狭いフォーム ファクターで全幅アダプティブ カードをテストし、コンテンツが切り捨てられないことを確認します。

全幅カードを作成する

全幅 アダプティブ カードを作成するには、カード コンテンツの msteams プロパティの width オブジェクトを Full に設定する必要があります。

全幅 アダプティブ カードのサンプル

全幅アダプティブ カードを作成するには、アプリに次のコード サンプルの要素を含める必要があります。

{
    "type": "AdaptiveCard",
    "body": [{
        "type": "Container",
        "items": [{
            "type": "TextBlock",
            "text": "Digest card",
            "size": "Large",
            "weight": "Bolder"
        }]
    }],

    "msteams": {
        "width": "Full"
    },
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2"
}

次の画像は、全幅アダプティブカードを示しています。

スクリーンショットは、全幅アダプティブ カードを示しています。

次の図は、 width プロパティを [完全] に設定していない場合のアダプティブ カードの既定のビューを示しています。

スクリーンショットは、幅が小さいアダプティブ カードを示しています。

アダプティブ カードのレスポンシブ レイアウト

アダプティブ カードは、ホスト アプリケーションのスタイルに外観を自動的に適応させますが、Teams モバイル クライアントとデスクトップ クライアント間で同じ固定レイアウトを持ちます。 チャット、チャネル、会議チャット全体で強化されたユーザー エクスペリエンスを提供するには、あらゆるデバイスで美しく表示されるようにアダプティブ カードを設計する必要があります。 この記事では、レスポンシブ アダプティブ カードの設計について説明します。

アダプティブ カードのレスポンシブ レイアウトは、さまざまなカード幅を対象とするさまざまなレイアウトのカードをデザインするのに役立ちます。

レスポンシブ アダプティブ カードをデザインする

任意の要素で targetWidth プロパティを使用すると、次のことができます。

  • カードの幅に基づいて要素を表示または非表示にします。

  • 異なる要素に異なるターゲット幅を設定して、異なるレイアウトを作成します。

    次の表に、使用可能な targetWidth 値を示します。

    値 説明
    veryNarrow この要素は、会議チャット中など、アダプティブ カードの幅が非常に狭い場合に表示されます。
    narrow この要素は、縦向きモードの携帯電話など、アダプティブ カードの幅が狭い場合に表示されます。
    standard 要素は、横向きモードの携帯電話、縦向きモードのタブレット、デスクトップのチャットなど、アダプティブ カードの幅が標準のときに表示されます。
    wide この要素は、横向きモードのタブレットや、デスクトップのチャネルやチャットなど、アダプティブ カードの幅が広い場合に表示され、カードを全幅に設定した場合に表示されます。

    targetWidth プロパティを設定し、atLeast プレフィックスと atMost プレフィックスを使用して、カード幅の範囲で要素を表示することもできます。 たとえば、カードの幅が「標準以上」の場合にのみ、またはカードの幅が「狭いか以下」の場合にのみ要素を表示することができます。 次の表は、さまざまなカード幅で要素を表示する方法のガイダンスを示しています。

    例 説明
    "targetWidth": "atLeast:standard" 要素が表示されるのは、アダプティブ カードの幅が少なくとも標準 (標準または幅を意味します) である場合のみです。
    "targetWidth": "atMost:narrow" 要素が表示されるのは、アダプティブ カードの幅がせいぜい狭い (非常に狭い、または狭い) 場合のみです。

    注:

    すべての要素に targetWidth を設定する必要はありません。 要素にtargetWidthを設定しない場合、カードの幅に関係なく、要素は常に表示されます。

targetWidthを使用せずに設計され、使用するように変更されたアダプティブ カードの JSON サンプルを次に示しますtargetWidth

  • targetWidthを使用せずに設計されたアダプティブ カード:

    {
      "type": "AdaptiveCard",
      "body": [
        {
          "type": "ColumnSet",
          "columns": [
            {
              "type": "Column",
              "items": [
                {
                  "type": "Image",
                  "style": "Person",
                  "url": "https://aka.ms/AAp9xo4",
                  "size": "Small"
                }
              ],
              "width": "auto"
            },
            {
              "type": "Column",
              "spacing": "medium",
              "verticalContentAlignment": "center",
              "items": [
                {
                  "type": "TextBlock",
                  "weight": "Bolder",
                  "text": "David Claux",
                  "wrap": true
                }
              ],
              "width": "auto"
            },
            {
              "type": "Column",
              "spacing": "medium",
              "items": [
                {
                  "type": "TextBlock",
                  "text": "Platform Architect",
                  "isSubtle": true,
                  "wrap": true
                }
              ],
              "width": "stretch",
              "verticalContentAlignment": "center"
            }
          ]
        }
      ],
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.5"
    }
    
    

    次の画像は、さまざまなカード幅でのアダプティブ カードのレンダリングを示しています。

    • カードの幅が広いと、カードが見栄えがします。

      スクリーンショットは、カード幅がワイドであるアダプティブ カードが targetWidth プロパティを使用せずに設計されている場合に、カードがどのようにレンダリングされるかを示しています。

    • カードの幅が標準または狭い場合、役割は絞られます。

      スクリーンショットは、カード幅が標準または狭いカードが targetWidth プロパティを使用せずに設計されている場合に、カード幅がどのようにレンダリングされるかを示しています。

    • カードの幅が非常に狭い場合、名前と役割が著しく圧迫される。

      スクリーンショットは、カード幅が非常に狭いアダプティブ カードが targetWidth プロパティを使用せずに設計されている場合に、カードがどのようにレンダリングされるかを示しています。

  • targetWidthを使用して応答するように更新されたアダプティブ カード:

      {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "ColumnSet",
            "columns": [
              {
                "type": "Column",
                "targetWidth": "atLeast:narrow",
                "items": [
                  {
                    "type": "Image",
                    "style": "Person",
                    "url": "https://aka.ms/AAp9xo4",
                    "size": "Small"
                  }
                ],
                "width": "auto"
              },
              {
                "type": "Column",
                "spacing": "medium",
                "verticalContentAlignment": "center",
                "items": [
                  {
                    "type": "TextBlock",
                    "weight": "Bolder",
                    "text": "David Claux",
                    "wrap": true
                  },
                  {
                    "type": "TextBlock",
                    "targetWidth": "atMost:narrow",
                    "spacing": "None",
                    "text": "Platform Architect",
                    "isSubtle": true,
                    "wrap": true
                  }
                ],
                "width": "auto"
              },
              {
                "type": "Column",
                "targetWidth": "atLeast:standard",
                "spacing": "medium",
                "items": [
                  {
                    "type": "TextBlock",
                    "text": "Platform Architect",
                    "isSubtle": true,
                    "wrap": true
                  }
                ],
                "width": "stretch",
                "verticalContentAlignment": "center"
              }
            ]
          }
        ],
        "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5"
      }
    

    異なるカード幅に targetWidth プロパティを使用した後、同じアダプティブ カードがどのようにレンダリングされるかを見てみましょう。

    • カードの幅が広い場合でも、カードは見栄えがします。

      targetWidth プロパティが広い場合のアダプティブ カードのレンダリング方法を示すスクリーンショット。

    • カードの幅が標準または狭い場合、並べて表示するための水平方向のスペースがないため、役割は名前の下に移動します。

      スクリーンショットは、targetWidth プロパティが標準または狭い場合のアダプティブ カードのレンダリング方法を示しています。

    • カードの幅が非常に狭い場合は、画像を非表示にして、最も意味のある情報のみを保持できます。

      スクリーンショットは、targetWidth プロパティが veryNarrow の場合にアダプティブ カードがどのようにレンダリングされるかを示しています。

アダプティブ カードを設計する方法の詳細については、「 Teams アプリ用のアダプティブ カードの設計」を参照してください。

先行入力のサポート

Input.ChoiceSet スキーマ要素内で、かなりの数の選択肢をフィルタリングして選択するようにユーザーに求めると、タスクの完了が大幅に遅くなる可能性があります。 アダプティブ カード内の先行入力サポートは、ユーザーが入力を入力するときに入力選択肢のセットを絞り込んだりフィルタリングしたりすることで、入力選択を簡素化できます。

Input.Choiceset 内で先行入力を有効にするには、style を filtered に設定し、isMultiSelect が false に設定されていることを確認します。

先行入力をサポートするサンプル アダプティブ カード

次のコードは、先行入力をサポートするアダプティブ カードの例を示しています。

{
   "type": "Input.ChoiceSet",
   "label": "Select a user",
   "isMultiSelect": false,
   "choices":  [
      { "title": "User 1", "value": "User1" },
      { "title": "User 2", "value": "User2" }
    ],
   "style": "filtered"
}

アダプティブ カードでの画像のステージビュー

アダプティブ カードでは、 msteams プロパティを使用して、ステージビューで画像を選択的に表示する機能を追加できます。 ユーザーが画像にカーソルを合わせると、allowExpand 属性が true に設定されている拡張アイコンが表示されます。 次のコードは、 msteams プロパティの例です。

{
    "type": "AdaptiveCard",
     "body": [
          {
            "type": "Image",
            "url": "https://picsum.photos/200/200?image=110",
            "msTeams": {
              "allowExpand": true
            }
          }
     ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2"
}

ユーザーが画像にカーソルを合わせると、次の図に示すように、右上隅に展開アイコンが表示されます。

スクリーンショットは、展開可能な画像を含むアダプティブ カードを示しています。

次の図に示すように、ユーザーが展開アイコンを選択すると、Stageview に画像が表示されます。

Screesnhots は、Stageview に展開された画像を示しています。

ステージビューでは、ユーザーは画像を拡大および縮小できます。 この機能が必要なアダプティブ カードの画像を選択できます。

注:

  • 拡大および縮小機能は、アダプティブ カードの画像の種類である画像要素にのみ適用されます。
  • Teams モバイル アプリの場合、アダプティブ カードの画像のステージ ビュー機能が既定で使用できます。 ユーザーは、 allowExpand 属性が存在するかどうかに関係なく、画像をタップするだけで Stageview でアダプティブ カード画像を表示できます。

アダプティブ カードの CodeBlock

CodeBlock要素を使用すると、Teams チャット、チャネル、会議でコード スニペットを書式設定されたアダプティブ カードとして共有できます。 CodeBlock要素を含むアダプティブ カードは、インデント、番号付け、構文の強調表示がプログラミング言語と一致するため、コード スニペットを読みやすくします。 また、動作設定ボタンを追加して、コードをソースで表示したり、Microsoft Visual Studio や Microsoft Visual Studio Code などの統合開発環境 (IDE) でコードを編集したりすることもできます。

次のスクリーンショットは、コード スニペットを含むアダプティブ カードを示しています。

スクリーンショットは、コード スニペットを含むアダプティブ カードを示しています。

CodeBlock 要素は、次の言語をサポートしています。

言語 サポート 言語 サポート
Bash ✔️ JSON ✔️
C ✔️ Perl ✔️
C++ ✔️ PHP ✔️
C# ✔️ PowerShell ✔️
CSS ✔️ Python ✔️
DOS ✔️ SQL ✔️
Go ✔️ TypeScript ✔️
GraphQL ✔️ Visual Basic ✔️
HTML ✔️ Verilog ✔️
Java ✔️ VHDL ✔️
JavaScript ✔️ XML ✔️

注:

スキーマの language プロパティで列挙型の値を PlainText に設定すると、CodeBlock 要素はプレーン テキストを言語として認識します。

次のコードは、コード スニペットを表示するアダプティブ カードの例です。

{
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "editor.js",
            "style": "heading"
        },
        {
            "type": "TextBlock",
            "text": "Lines 61 - 76"
        },
        {
            "type": "CodeBlock",
            "codeSnippet": "/**\n* @author John Smith <john.smith@example.com>\n*/\npackage l2f.gameserver.model;\n\npublic abstract strictfp class L2Char extends L2Object {\n  public static final Short ERROR = 0x0001;\n\n  public void moveTo(int x, int y, int z) {\n    _ai = null;\n    log(\"Shouldn't be called\");\n    if (1 > 5) { // what!?\n      return;\n    }\n  }\n}",
            "language": "java",
            "startLineNumber": 61
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "View in Azure Repos",
            "url": "https://azure.microsoft.com/en-us/products/devops/repos/"
        },
        {
            "type": "Action.OpenUrl",
            "title": "Edit in vscode.dev",
            "url": "https://vscode.dev/"
        }
    ]
}

CodeBlock 要素は、次のプロパティをサポートします。

プロパティ 型 必須 説明
codeSnippet String はい アダプティブ カードに表示するコード スニペット。
language 列挙 はい アダプティブ カードに表示されるコード スニペットの言語。
startLineNumber 番号 不要 コード スニペットが始まるソースの行番号。 空白のままにすると、既定値は 1 です。

ヒント

  • codeSnippet プロパティでは、特殊文字が固有の関数を持ちます。 たとえば、改行文字 \n は改行をトリガーします。
  • 改行文字\nをアダプティブ カードのコード スニペットの一部として表示するには、codeSnippet プロパティで\\nするようにエスケープしてください。 それ以外の場合、Teams はカードの次の行の\nの後にコードをレンダリングします。

制限事項

  • CodeBlock要素を含むアダプティブ カードは、Teams Web クライアントとデスクトップ クライアントでのみサポートされます。
  • アダプティブ カード内のコード スニペットは読み取り専用で、編集できません。
  • アダプティブ カードでは、コード スニペットの最初の 10 行のみがプレビューされます。 コードが 10 行を超える場合、ユーザーは [展開] を選択して残りのコード スニペットを表示する必要があります。

アダプティブ カードのオーバーフロー メニュー

Teams のアダプティブ カードはオーバーフロー メニューをサポートしています。 アダプティブ カードのすべてのセカンダリ アクションのオーバーフロー メニューを設定できます。 アダプティブ カードのオーバーフロー メニューは、次の場所に追加できます。

  • アクション: アクションでは、プライマリ ボタンはアダプティブ カード上に表示され、セカンダリ ボタンはオーバーフロー メニュー内に表示されます。

  • ActionSet: ActionSet は、アダプティブ カード内の複数のアクションの組み合わせです。 各アクション セットには、オーバーフロー メニューを含めることができます。

注:

アダプティブ カードでは、カード上で表示する主要なアクションを最大 6 つまでサポートできます。 追加のプライマリ アクションは、オーバーフロー メニューに表示されます。

グラフィック表示は、アダプティブ カードのオーバーフロー メニュー エクスペリエンスを示しています。

オーバーフロー メニューを有効にする

オーバーフロー メニューを有効にするには、アダプティブ カード スキーマで値を primary または secondary として mode プロパティを構成します。 次の表では、 mode プロパティについて説明します。

プロパティ 型 必須 説明
mode 列挙型 (プライマリ、セカンダリ) 不要 アクションがプライマリ アクションかセカンダリ アクションか。 2 次的なアクションは、オーバーフロー メニューに折りたたまれます。

次の例は、actions 型と ActionSet 要素の mode プロパティを示しています。

アクション

次の例では、2 つの主要なアクションと 1 つの二次的なアクションがあります。 セカンダリ アクションでは、オーバーフロー メニューが作成されます。

{
   "type": "AdaptiveCard",
   "actions": [
        {
            "type": "Action.Submit",
            "title": "Set due date"
        },
        {
            "type": "Action.OpenUrl",
            "title": "View",
            "url": "https://adaptivecards.microsoft.com/?topic=welcome"
        },
        {
            "type": "Action.Submit",
            "title": "Delete",
            "mode": "secondary"
        }
    ]
}

注:

オーバーフロー メニューは、カード送信されたボットと、アダプティブ カードのルート レベル actionsのメッセージ拡張機能カード異なる動作をします。 ボットが送信したカードのオーバーフロー メニューはポップアップ コンテキスト メニューとして表示され、メッセージ拡張機能カードでは、その他のオプション (...) アイコンの右上隅に表示されます。 この動作は、アダプティブ カードの ActionSet には適用されません。

次の画像は、ボットが送信したカードとメッセージ拡張機能カードのオーバーフロー メニューの例です。

スクリーンショットは、ボットが送信したカードとメッセージング拡張機能カードのオーバーフロー メニュー動作の例を示しています。

アクション セット

次の例では、すべてのアクションがセカンダリとしてマークされるため、1 つのオーバーフロー メニューがカードに表示されます。

{
    "type": "ActionSet",
     "actions": [

          {
           
            "type": "Action.Submit",
            "title": "view",
            "mode": "Secondary" 
       {
       },
            "type": "Action.submit",
            "title": "Delete",
            "mode": "secondary"

       },
       {
             "type": "Action.submit",
            "title": "Delete",
            "mode": "secondary"
       }
     ]
}

次の例は、Teams デスクトップおよびモバイル クライアントでのオーバーフロー メニュー エクスペリエンスを示しています。

ユーザーがデスクトップでオーバーフロー メニューを選択すると、セカンダリとして設定されたボタンがアダプティブ カードに表示されます。

スクリーンショットは、Teams デスクトップ クライアントのアダプティブ カードのボタンの例を示しています。

スクリーンショットは、Teams デスクトップ クライアントのオーバーフロー メニューにアクションの一覧を含むアダプティブ カードの例を示しています。

スクリーンショットは、Teams デスクトップ クライアントのオーバーフロー メニューでオプションとしてセカンダリとして設定されているボタンを含むアダプティブ カードの例を示しています。

アダプティブ カードの境界線と角の丸み

アダプティブ カードはさまざまな要素をサポートしていますが、要素が多すぎるとカードが乱雑になり、読みやすさが低下します。 アダプティブ カード内のさまざまな要素に罫線を追加して線を描写し、ユーザーが区別しやすくすることができます。

国境なし

スクリーンショットは、要素の周りに罫線がないアダプティブ カードを示しています。

罫線付き

スクリーンショットは、要素の周りに罫線があるアダプティブ カードを示しています。

アダプティブ カードは、複数のホスト間で使用できます。 これらのホストの多くは、現代的なデザイン システムとフレームワークに従っています。 アダプティブ カードは、さまざまな要素の角を丸くして、これらのホストとの一貫性を維持し、最新のデザイン トレンドに追いつきます。 角が丸くなっているため、カードのデザインがよりモダンで視覚的に魅力的に見え、より柔らかな視覚的な流れを作り出します。

角が丸くなっていない

スクリーンショットは、要素の角が丸くなっていないアダプティブ カードを示しています。

角が丸い

スクリーンショットは、要素の角が丸いアダプティブ カードを示しています。

罫線と角丸みは、以下の要素にのみ追加できます。

要素 罫線 角が丸くなっている
Container ✔️ ✔️
ColumnSet ✔️ ✔️
Column ✔️ ✔️
Table ✔️ ✔️
Image ❌ ✔️

アダプティブ カードに罫線と角の丸みを実装する

Container、ColumnSet、またはColumn要素に罫線を追加するには、カードのペイロード内の要素に対して showBorder プロパティを true に設定します。 Table要素に罫線を追加するには、showGridLines プロパティを true に設定します。 境界色は、 HostConfig.jsonで定義されている要素のスタイルと一致します。

プロパティ 型 必須 説明
showBorder ブール型 いいえ Container、ColumnSet、またはColumn要素に罫線を追加します。
showGridLines ブール型 いいえ Table要素に罫線を追加します。 既定値: true

Container、ColumnSet、Column、またはTable要素に角を丸めるには、カードのペイロード内の要素に対して roundedCorners プロパティを true に設定します。 Image要素に角丸を追加するには、style プロパティを要素内でRoundedCornersに設定します。

プロパティ 型 必須 説明
roundedCorners ブール型 いいえ Container、ColumnSet、Column、またはTable要素に角を丸くします。
style 文字列 いいえ 値を roundedCorners に設定すると、Image要素に角を丸くします。

次の JSON ペイロードは、要素の周りに境界線と角が丸いアダプティブ カードを示しています。

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "Below is a **ColumnSet** with borders and rounded corners:",
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "showBorder": true,
            "roundedCorners": true,
            "style": "emphasis",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "showBorder": true,
                    "roundedCorners": true,
                    "style": "accent",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "This is a **Column** with borders and rounded corners",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "showBorder": true,
                    "roundedCorners": true,
                    "style": "good",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "This is another **Column** with borders and rounded corners",
                            "wrap": true
                        }
                    ]
                }
            ]
        },
        {
            "type": "Container",
            "style": "attention",
            "showBorder": true,
            "roundedCorners": true,
            "items": [
                {
                    "type": "TextBlock",
                    "text": "This is a **Container** with borders and rounded corners",
                    "wrap": true
                }
            ]
        },
        {
            "type": "Table",
            "roundedCorners": true,
            "columns": [
                {
                    "width": 1
                },
                {
                    "width": 1
                }
            ],
            "rows": [
                {
                    "type": "TableRow",
                    "cells": [
                        {
                            "type": "TableCell",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "This **Table**...",
                                    "wrap": true
                                }
                            ]
                        },
                        {
                            "type": "TableCell",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "...has borders and rounded corners",
                                    "wrap": true
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "text": "The below **Image** has rounded corners:",
            "wrap": true
        },
        {
            "type": "Image",
            "url": "https://media.licdn.com/dms/image/C4E03AQF5uhIghtPzrA/profile-displayphoto-shrink_400_400/0/1517690039090?e=2147483647&v=beta&t=g1DFilNHZhah2fhaTS9ylBxGGGb2XyPA2C7LZptk4QE",
            "width": "100px",
            "style": "RoundedCorners"
        }
    ]
}

アダプティブ カードのスクロール可能なコンテナー

多くの要素を含むコンテナーは、長くて読み取り不可能なカードにつながる可能性があります。 コンテナーの最大高さを定義するには、 maxHeight プロパティを使用します。 コンテナーに最大高さがあり、そのコンテンツがその高さを超えると、垂直スクロール バーが表示されます。

maxHeight プロパティの定義方法を次に示します。

プロパティ 型 説明
maxHeight 文字列 コンテナーの最大高さを定義します。 このプロパティは、 Container、 Column、 TableCell、およびその他のコンテナーでも使用できます。
値は、 <number>px 書式で定義する必要があります。

次のカード ペイロードは、スクロール バー付きのコンテナーを示しています。

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "This is a scrollable container",
            "wrap": true,
            "size": "ExtraLarge",
            "weight": "Bolder"
        },
        {
            "type": "Container",
            "style": "emphasis",
            "showBorder": true,
            "maxHeight": "100px",
            "items": [
                {
                    "type": "TextBlock",
                    "text": "Item 1",
                    "size": "ExtraLarge"
                },
                {
                    "type": "TextBlock",
                    "text": "Item 2",
                    "size": "ExtraLarge"
                },
                {
                    "type": "TextBlock",
                    "text": "Item 3",
                    "size": "ExtraLarge"
                }
            ]
        }
    ]
}

Teams デスクトップ クライアント上のアダプティブ カード内のスクロール可能なコンテナーを示すスクリーンショット。

アダプティブ カードの [複合] ボタン

[複合] ボタンは、アイコン、タイトル、および説明を含む特殊な種類のボタンです。 CompoundButton要素を使用して [Compound] ボタンを追加できます。 この要素を使用すると、アダプティブ カードで プロンプト スターター の外観を再現できます。

CompoundButton要素のプロパティは次のとおりです。

プロパティ 必須 型 説明
type ✔️ 文字列 CompoundButton である必要があります。
title ✔️ 文字列 ボタンのタイトル。 Markdown はサポートされていません。
id 文字列 要素またはアクションの一意識別子。
requires オブジェクト 要素がホスト アプリでサポートする必要がある機能のリスト。 ホスト アプリが一覧表示されている機能の 1 つ以上をサポートしていない場合、要素がレンダリングされないか、そのフォールバックがレンダリングされます (指定されている場合)。
isVisible ブール型 要素の可視性を制御します。
separator ブール型 前の要素から視覚的に分離するために、要素の上に区切り線を表示するかどうかを制御します。 このプロパティが true に設定されていても、コンテナー内の最初の要素には区切り記号は表示されません。
height 文字列 要素の高さ。 stretch に設定すると、要素はコンテナー内の残りの垂直スペースを使用します。
有効な値: auto、 stretch
horizontalAlignment 文字列 要素を水平方向に揃える方法を制御します。
有効な値: Left、 Center、 Right
Spacing 文字列 この要素と前の要素の間のスペースの量を制御します。 コンテナー内の最初の要素にはスペースが追加されません。
有効な値: None、 Small、 Default、 Medium、 Large、 ExtraLarge
targetWidth 文字列 要素を表示するカードの幅を制御します。 targetWidth が指定されていない場合、要素はすべてのカード幅でレンダリングされます。 targetWidth を使用すると、レイアウトを使用可能な水平スペースに適応させるレスポンシブ カードを作成できます。 詳細については、「 アダプティブ カードのレスポンシブ レイアウト」を参照してください。
有効な値: VeryNarrow、 Narrow、 Standard、 Wide
icon 文字列 ボタンに表示されているアイコン。
badge 文字列 ボタンに表示されているバッジ。 Markdown はサポートされていません。
description 文字列 ボタンの説明テキスト。 Markdown はサポートされていません。
selectAction ボタンが選択されたときに呼び出されるアクション。 Action.ShowCard を除くすべてのアクションが許可されます。

icon要素のプロパティは次のとおりです。

プロパティ 必須 型 説明
name ✔️ 文字列 Fluent アイコン ディレクトリに記載されたアイコンの名前。 これは、新しいアイコン要素の名前と同じです。
size 文字列 アイコンのサイズ。 有効な値: xxSmall、 xSmall、 Small、 Standard、 Medium、 Large、 xLarge、 xxLarge
style 文字列 アイコンのスタイル。 有効な値: Regular、 Filled
color 文字列 アイコンの色。 有効な値: Default、 Dark、 Light、 Accent、 Good、 Warning、 Attention

CompoundButton 要素を使用するアダプティブ カードの例を次に示します。

{ 
    "type": "AdaptiveCard", 
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", 
    "version": "1.5", 
    "body": [ 
        { 
            "type": "CompoundButton", 
            "title": "Photos", 
            "icon": { 
                "name": "Camera" 
            }, 
            "description": "Add photos", 
            "height": "stretch"
        } 
    ] 
}

アダプティブ カードの [複合] ボタンのデスクトップとモバイル ビューのスクリーンショット。

アダプティブ カードのアイコン

アダプティブ カードでは、Icon要素を使用した Fluent アイコン ライブラリからのアイコンの追加がサポートされています。 アクション ボタンで Fluent アイコンを使用するには、アクションの iconUrl プロパティを icon:<icon name>[,regular|filled] 形式の値に設定します。

Icon要素のプロパティは次のとおりです。

プロパティ 説明
type Icon である必要があります。
name 表示するアイコンの名前。 たとえば、「 calendar 」のように入力します。
size アイコンのサイズ。
有効な値: xxSmall、 xSmall、 Small、 Medium、 Large、 xLarge、 xxLarge
既定値: Standard
color アイコンの色。
有効な値: Dark、 Light、 Accent、 Good、 Warning、 Attention
既定値: Default
style アイコンのスタイル。
有効な値: Filled、 Regular
selectAction アイコンをタップまたは選択したときに呼び出されるアクション。 Action.ShowCard を除くすべてのアクション タイプがサポートされています。
有効な値: Action.Execute、 Action.OpenUrl、 Action.Popover、 Action.ResetInputs、 Action.Submit、 Action.ToggleVisibility

アクション ボタンで Icon 要素と iconUrl プロパティを使用するアダプティブ カードの例を次に示します。

{
  "type": "AdaptiveCard",
  "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.5",
  "body": [
    {
      "type": "TextBlock",
      "text": "Here's an Icon element"
    },
    {
  "type": "Icon",
        "name": "Calendar",
        "size": "Medium",
        "style": "Filled",
        "color": "Accent"
    },
    {
      "type": "TextBlock",
      "text": "Here's an Icon element in a button"
    }
 ],
 "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Filled icon",
            "url": "https://www.microsoft.com",
            "iconUrl": "icon:AccessTime,filled"
        }
    ]
}

Fluent アイコンが付いたアダプティブ カードを示すスクリーンショット。

アダプティブ カードのレーティング

Input.Rating要素を使用して、アダプティブ カードに星評価入力を追加できます。 Rating 要素を使用して読み取り専用の星評価を含めることもできます。

入力評価と読み取り専用の星評価を持つアダプティブ カードを示すスクリーンショット。

次のペイロードは、入力有効および読み取り専用の星評価を持つアダプティブ カードを示しています。

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "size": "Large",
            "text": "Rating input"
        },
        {
            "type": "Input.Rating",
            "id": "rating1",
            "label": "Pick a rating",
            "size": "medium",
            "color": "marigold",
            "isRequired": true,
            "errorMessage": "Please pick a rating"
        },
        {
            "type": "TextBlock",
            "size": "large",
            "text": "Read-only rating",
            "separator": true,
            "spacing": "ExtraLarge"
        },
        {
            "type": "Rating",
            "max": 20,
            "value": 3.2,
            "color": "marigold"
        }
    ]
}

Input.Rating

Input.Rating要素のプロパティは次のとおりです。

プロパティ 必須 型 説明
type ✔️ 文字列 Input.Rating である必要があります。
allowHalfSteps ブール型 ユーザーが半分の星を選択できるかどうかを制御します。 既定値: false
color 文字列 星の色。
有効な値: Neutral、 Marigold
既定値: Neutral
errorMessage 文字列 入力の検証に失敗したときに表示されるエラー メッセージ。
fallback オブジェクトまたは文字列のいずれか この要素の型がサポートされていない場合、またはホスト アプリケーションが requires プロパティで指定されたすべての機能をサポートしていない場合に、レンダリングする代替要素。
有効な値: Container、 ActionSet、 ColumnSet、 Media、 RichTextBlock、 Table、 TextBlock、 FactSet、 ImageSet、 Image、 Input.Text、 Input.Date、 Input.Time、 Input.Number、 Input.Toggle、 Input.ChoiceSet、 Input.Rating、 Rating、 CompoundButton、 Icon、 Chart.Donut、 Chart.Pie、 Chart.VerticalBar.Grouped、 Chart.VerticalBar、 Chart.HorizontalBar、 Chart.HorizontalBar.Stacked、 Chart.Line、 Chart.Gauge、 CodeBlock、 drop
grid.area 文字列 要素を表示する必要がある Layout.AreaGrid レイアウトの領域。
height 文字列 要素の高さを制御します。 stretch に設定すると、要素はコンテナー内の残りの垂直スペースを使用します。
有効な値: auto、 stretch
既定値: auto
id ✔️ 文字列 要素またはアクションの一意の識別子。
isRequired ブール型 入力が必須かどうかを決定します。
既定値: false
isVisible ブール型 要素の可視性を決定します。
既定値: true
label 文字列 入力のラベル。
lang 文字列 要素に関連付けられているロケール。
max 番号 表示する星の数。 サポートされている星の既定および最大数は 5 つです。
requires オブジェクト 要素がホスト アプリケーションでサポートする必要がある機能のリスト。 ホスト アプリケーションがリストされている機能の少なくとも 1 つをサポートしていない場合、要素はレンダリングされないか、そのフォールバックがレンダリングされます (指定されている場合)。
許可される値は次のとおりです。 HostCapabilities
separator ブール型 前の要素から視覚的に分離するために、要素の上に区切り線を表示するかどうかを決定します。 このプロパティが true に設定されていても、コンテナー内の最初の要素には区切り記号は表示されません。
既定値: false
size 文字列 星の大きさ。
有効な値: Medium、 Large
既定値: Large
spacing 文字列 この要素と前の要素の間のスペースの量を制御します。 コンテナー内の最初の要素にはスペースが追加されません。
有効な値: None、 Small、 Default、 Medium、 Large、 ExtraLarge、 Padding
既定値: Default
targetWidth 文字列 要素を表示するカードの幅を制御します。 targetWidth が指定されていない場合、要素はすべてのカード幅でレンダリングされます。 targetWidth を使用すると、レイアウトを使用可能な水平スペースに適応させるレスポンシブ カードを作成できます。 詳細については、「 アダプティブ カードのレスポンシブ レイアウト」を参照してください。
有効な値: VeryNarrow、 Narrow、 Standard、 Wide、 atLeast:VeryNarrow、 atMost:VeryNarrow、 atLeast:Narrow、 atMost:Narrow、 atLeast:Standard、 atMost:Standard、 atLeast:Wide、 atMost:Wide
value 番号 入力の既定値。 max が指定されている場合、この値は max を超えることはできません。
valueChangedAction アクション 入力の値が変更されたときに実行される Action.ResetInputs アクション。
許可される値: Action.ResetInputs

評価

Rating要素のプロパティは次のとおりです。

プロパティ 必須 型 説明
type ✔️ 文字列 Rating である必要があります。
color 文字列 星の色。
有効な値: Neutral、 Marigold
既定値: Neutral
count 番号 評価に関連付けられている "投票" の数。
fallback オブジェクトまたは文字列のいずれか この種類の要素がサポートされていない場合、またはホスト アプリケーションが requires プロパティで指定されたすべての機能をサポートしていない場合に、レンダリングする代替要素。
有効な値: Container、 ActionSet、 ColumnSet、 Media、 RichTextBlock、 Table、 TextBlock、 FactSet、 ImageSet、 Image、 Input.Text、 Input.Date、 Input.Time、 Input.Number、 Input.Toggle、 Input.ChoiceSet、 Input.Rating、 Rating、 CompoundButton、 Icon、 Chart.Donut、 Chart.Pie、 Chart.VerticalBar.Grouped、 Chart.VerticalBar、 Chart.HorizontalBar、 Chart.HorizontalBar.Stacked、 Chart.Line、 Chart.Gauge、 CodeBlock、 drop
grid.area 文字列 要素を表示する必要がある Layout.AreaGrid レイアウトの領域。
height 文字列 要素の高さ。 stretch に設定すると、要素はコンテナー内の残りの垂直スペースを使用します。
有効な値: Auto、 Stretch
horizontalAlignment 文字列 要素の水平方向の配置方法を制御します。
有効な値: Left、 Center、 Right
id 文字列 要素またはアクションの一意の識別子。
isVisible ブール型 要素の可視性を制御します。
既定値: true
lang 文字列 要素に関連付けられているロケール。
max 番号 表示する星の数。 サポートされている星の既定および最大数は 5 つです。
requires オブジェクト 要素がホスト アプリケーションでサポートする必要がある機能のリスト。 ホスト アプリケーションがリストされている機能の少なくとも 1 つをサポートしていない場合、要素はレンダリングされないか、そのフォールバックがレンダリングされます (指定されている場合)。
許可される値: HostCapabilities
separator ブール型 前の要素から視覚的に分離するために、要素の上に区切り線を表示するかどうかを制御します。 このプロパティが true に設定されていても、コンテナー内の最初の要素には区切り記号は表示されません。
既定値: false
size 文字列 星の大きさ。
有効な値: Medium、 Large
既定値: Large
spacing 文字列 この要素と前の要素の間のスペースの量を制御します。 コンテナー内の最初の要素にはスペースが追加されません。
有効な値: None、 Small、 Default、 Medium、 Large、 ExtraLarge、 Padding
既定値: Default
style 文字列 星のスタイル。 コンパクト モードでは、星は 1 つだけ表示されます。
有効な値: Default、 Compact
既定値: Default
targetWidth 文字列 要素を表示するカードの幅を制御します。 targetWidth が指定されていない場合、要素はすべてのカード幅でレンダリングされます。 targetWidth を使用すると、レイアウトを使用可能な水平スペースに適応させるレスポンシブ カードを作成できます。 詳細については、「 アダプティブ カードのレスポンシブ レイアウト」を参照してください。
有効な値: VeryNarrow、 Narrow、 Standard、 Wide、 atLeast:VeryNarrow、 atMost:VeryNarrow、 atLeast:Narrow、 atMost:Narrow、 atLeast:Standard、 atMost:Standard、 atLeast:Wide、 atMost:Wide
value 番号 レーティングの値。 max が指定されている場合、この値は 0 から max の間である必要があります。

HTML を使用してカードを書式設定する

次のカード タイプは、Teams での HTML 書式設定をサポートしています。

  • Microsoft 365 グループ用コネクタ カード: 制限付きマークダウンと HTML 形式は、Microsoft 365 グループ用コネクタ カードでサポートされています。
  • ヒーロー カードとサムネイル カード: HTML タグは、ヒーロー カードやサムネイル カードなどの簡易カードでサポートされています。

Microsoft 365 グループとシンプルなカードのコネクタ カードでは、デスクトップ版とモバイル版の Teams で書式設定が異なります。 このセクションでは、コネクタ カードと簡易カードの HTML 書式の例を参照できます。

コネクタ カードでは、Markdown と HTML の書式設定が制限されています。

Style 例 HTML
太字 text <strong>text</strong>
斜体 text <em>text</em>
ヘッダー (レベル 1 から 3) Text <h3>Text</h3>
取り消し線 text <strike>text</strike>
記号付きリスト
  • text
  • text
<ul><li>text</li><li>text</li></ul>
番号付きリスト
  1. text
  2. text
<ol><li>text</li><li>text</li></ol>
事前書式設定済みのテキスト text <pre>text</pre>
Blockquote
text
<blockquote>text</blockquote>
Hyperlink Bing <a href="https://www.bing.com/">Bing</a>
画像リンク 岩の上のアヒル <img src="https://aka.ms/Fo983c" alt="Duck on a rock"></img>

コネクタ カードでは、改行は <p> タグを使用して HTML でレンダリングされます。

コネクタ カードのモバイルとデスクトップの違い

デスクトップでは、次の画像に示すように、コネクタ カードの HTML 書式設定が表示されます。

デスクトップ クライアントのコネクタ カードの HTML 書式設定を示すスクリーンショット。

iOS では、次の図に示すように HTML 書式設定が表示されます。

iOS クライアントでのコネクタ カードの HTML 書式設定を示すスクリーンショット。

iOS 用 HTML を使用するコネクタ カードには、次の問題があります。

  • インライン画像は、コネクタ カードの Markdown または HTML を使用して iOS ではレンダリングされません。
  • 事前に書式設定されたテキストはレンダリングされますが、背景は灰色ではありません。

Android では、次の図に示すように HTML 書式設定が表示されます。

スクリーンショットは、Android クライアントのコネクタ カードの HTML 書式を示しています。

HTML コネクタ カードの書式のサンプル

次のコードは、HTML コネクタ カードの書式設定の例を示しています。

{
  "contentType": "application/vnd.microsoft.teams.card.o365connector",
  "content": {
    "@type": "MessageCard",
    "@context": "https://schema.org/extensions",
    "summary": "Summary",
    "title": "Connector Card HTML formatting",
    "sections": [
        {
            "text": "This is some <strong>bold</strong> text"
        },
        {
            "text": "This is some <em>italic</em> text"
        },
        {
            "text": "This is some <strike>strikethrough</strike> text"
        },
        {
            "text": "<h1>Header 1</h1>\r<h2>Header 2</h2>\r <h3>Header 3</h3>"
        },
        {
            "text": "bullet list <ul><li>text</li><li>text</li></ul>"
        },
        {
            "text": "ordered list <ol><li>text</li><li>text</li></ol>"
        },
        {
            "text": "hyperlink <a href=\"https://www.bing.com/\">Bing</a>"
        },
        {
            "text": "embedded image <img src=\"https://aka.ms/Fo983c\" alt=\"Duck on a rock\"></img>"
        },
        {
            "text": "preformatted text <pre>text</pre>"
        },
        {
            "text": "Paragraphs <p>Line a</p><p>Line b</p>"
        },
        {
            "text": "<blockquote>Blockquote text</blockquote>"
        }
     ]
  }
}

コード サンプル

S.No。 説明 .NET Node.js マニフェスト
1 このサンプルでは、メンション、ペルソナ アイコン、レスポンシブ レイアウトなど、アダプティブ カードでさまざまな書式設定スタイルを使用する方法を示します。 表示 表示 表示

関連項目