Microsoft Teams のカードの書式設定
カードにリッチ テキストの書式設定を追加する 2 つの方法を次に示します。
カードは、タイトル プロパティや字幕プロパティではなく、テキスト プロパティでのみ書式設定をサポートします。 カードの種類に応じて、XML または HTML のサブセット、または Markdown を使用して書式設定を指定できます。 アダプティブ カードの現在および将来の開発では、Markdown の書式設定をお勧めします。
書式設定のサポートはカードの種類によって異なります。カードのレンダリングは、デスクトップとモバイルの Microsoft Teams クライアント間、およびデスクトップ ブラウザーの Teams 間でわずかに異なる場合があります。
Teams カードにはインライン画像を含めることができます。 サポートされているイメージ形式は、.png、.jpg、または .gif 形式です。 サイズは 1024 x 1024 ピクセル以内、ファイル サイズは 1 MB 未満にしてください。 アニメーション .gif 画像はサポートされていません。 詳細については、「カードの種類」を参照してください。
サポートされている特定のスタイルを含む Markdown を使用して、アダプティブカードと Office 365 コネクタ カードを書式設定できます。
Markdown でカードを書式設定する
次のカードタイプは、Teams での Markdown 書式設定をサポートしています。
- アダプティブ カード: Markdown は、アダプティブ カード
Textblockフィールド、およびFact.TitleとFact.Valueでサポートされています。 HTML はアダプティブ カードではサポートされていません。 - Office 365 コネクタ カード: Markdown と制限付き HTML は、テキスト フィールドの Office 365 コネクタ カードでサポートされています。
リスト内の改行に \r または \n エスケープ シーケンスを使用して、アダプティブ カードに改行を使用できます。 書式設定は、デスクトップ版とモバイル版の アダプティブ カード用 Teams で異なります。 カード ベースのメンションは、Web、デスクトップ、およびモバイル クライアントでサポートされています。 情報マスキングプロパティを使用して、アダプティブ カード Input.Text 入力要素内のユーザーからのパスワードや機密情報などの特定の情報をマスクできます。 width オブジェクトを使用して、アダプティブ カードの幅を拡張できます。 アダプティブ カード内で先行入力サポートを有効にし、ユーザーが入力を入力するときに入力選択肢のセットをフィルタリングできます。 msteams プロパティを使用して、ステージ ビューで画像を選択的に表示する機能を追加できます。
書式設定は、アダプティブ カードおよびコネクタ カード用の Teams のデスクトップ バージョンとモバイル バージョンで異なります。 このセクションでは、アダプティブ カードとコネクタ カードの Markdown 書式の例を紹介します。
次の表に、Textblock、Fact.Title、および Fact.Value でサポートされているスタイルを示します。
| Style | 例 | Markdown |
|---|---|---|
| 太字 | Bold | **Bold** |
| 斜体 | Italic | _Italic_ |
| 記号付きリスト |
|
- Item 1\r- Item 2\r- Item 3 |
| 番号付きリスト |
|
1. Green\r2. Orange\r3. Blue |
| Hyperlinks | Bing | [Title](url) |
次の Markdown タグはサポートされていません。
- ヘッダー
- テーブル
- 画像
- 事前書式設定済みのテキスト
- Blockquotes
アダプティブ カードの改行
リスト内の改行には、\r または \n のエスケープ シーケンスを使用できます。 リストで \n\n を使用すると、リスト内の次の要素がインデントされます。 TextBlock の他の場所で改行が必要な場合は、\n\n を使用してください。
アダプティブ カードのモバイルとデスクトップの違い
デスクトップでは、アダプティブ カードの Markdown 書式設定は、Web ブラウザーと Teams クライアント アプリケーションの両方で次の画像のように表示されます。
iOS では、アダプティブ カード Markdown の書式設定が次の図のように表示されます。
Android では、アダプティブ カード Markdown の書式設定が次の図のように表示されます。
詳細については、「アダプティブ カード」のテキスト機能を参照してください。
注意
このセクションに記載されている日付とローカリゼーション機能は、Teams ではサポートされていません。
アダプティブ カード書式のサンプル
次のコードは、アダプティブ カードの書式設定の例を示しています。
{
"$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.io)"
}
]
}
アダプティブ カードは、絵文字をサポートします。次のコードは、絵文字を使用したアダプティブ カードの例を示しています。
{ "$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" }, ] }, ], }
アダプティブ カード内でのサポートのメンション
ボットとメッセージ拡張機能の応答のために、アダプティブ カード本体内に @メンションを追加できます。 カードに @メンションを追加するには、チャネルおよびグループ チャットの会話でのメッセージ ベースのメンションと同じ通知ロジックとレンダリングに従います。
ボットとメッセージ拡張機能には、カード コンテンツ内の TextBlock 要素と FactSet 要素に言及を含めることができます。
注意
- メディア要素は現在、Teams プラットフォームのアダプティブ カードではサポートされていません。
- チャネルとチームのメンションはボット メッセージではサポートされていません。
アダプティブ カードにメンションを含めるには、アプリに次の要素を含める必要があります。
- サポートされているアダプティブカード要素の
<at>username</at>。 - カード コンテンツの
msteamsプロパティ内のmentionオブジェクトには、言及されているユーザーの Teams ユーザー ID が含まれています。 userIdは、ボット ID と特定のユーザーに固有です。 特定のユーザーに @メンションするために使用できます。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 Azure Active Directory (Azure AD) ユーザー メンションにおけるオブジェクト ID と UPN
Teams プラットフォームでは、既存の言及 ID に加えて、Azure AD オブジェクト ID とユーザー原則名 (UPN) を使用してユーザーに言及することができます。 アダプティブ カードを備えたボットと受信 Webhook を備えたコネクタは、2 つのユーザー メンション ID をサポートします。
次の表に、新しくサポートされたユーザー メンション ID を示します。
| ID | サポート機能 | 説明 | 例 |
|---|---|---|---|
| Azure AD オブジェクト ID | ボット、コネクタ | Azure AD ユーザーのオブジェクト ID を指定する | 49c4641c-ab91-4248-aebb-6a7de286397b |
| UPN | ボット、コネクタ | Azure AD ユーザーの UPN | john.smith@microsoft.com |
アダプティブ カードを使用したボットでのユーザー メンション
ボットは、既存の ID に加えて、Azure AD オブジェクト ID と UPN を使用したユーザーのメンションをサポートします。 2 つの新しい ID のサポートは、テキスト メッセージ、アダプティブ カード本体、およびメッセージ拡張応答のボットで利用できます。 ボットは、会話および invoke シナリオでの言及 ID をサポートします。 ユーザーは、ID で @メンションされると、アクティビティ フィード通知を受け取ります。
注意
ボットのアダプティブ カードを使用したユーザー メンションには、スキーマの更新と 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 Azure AD</at>"
}
],
"msteams": {
"entities": [
{
"type": "mention",
"text": "<at>Adele UPN</at>",
"mentioned": {
"id": "AdeleV@contoso.onmicrosoft.com",
"name": "Adele Vance"
}
},
{
"type": "mention",
"text": "<at>Adele Azure AD</at>",
"mentioned": {
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
"name": "Adele Vance"
}
}
]
}
}
次の画像は、ボットのアダプティブ カードでのユーザー メンションを示しています。
アダプティブ カードを使用した受信 Webhook でのユーザー メンション
受信 Webhook は、Azure AD オブジェクト ID と UPN を使用したアダプティブ カードでのユーザー メンションをサポートし始めます。
注意
- 受信 Webhook のスキーマでユーザー メンションを有効にして、Azure AD オブジェクト ID と UPN をサポートします。
- UI/UX の変更は、Azure AD オブジェクト ID および UPN を使用したユーザー メンションには必要ありません。
例
受信 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 Azure AD</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 Azure AD</at>",
"mentioned": {
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
"name": "Adele Vance"
}
}
]
}
}
}]
}
次の図は、受信 Webhook でのユーザー メンションを示しています。
アダプティブ カードの情報マスキング
情報マスキングプロパティを使用して、アダプティブ カード Input.Text 入力要素内のユーザーからのパスワードや機密情報などの特定の情報をマスクします。
注意
この機能は、クライアント側の情報マスキングのみをサポートします。マスキングされた入力テキストは、ボット構成中に指定された HTTPS エンドポイント アドレスにクリア テキストとして送信されます。
アダプティブ カードの情報をマスクするには、styleプロパティを 型 input.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プロパティを Full に設定していない場合のアダプティブ カードの既定ビューを示しています。
先行入力のサポート
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 に設定されている拡張アイコンが表示されます。 プロパティの使用方法については、次の例を参照してください。
{
"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"
}
ユーザーが画像にカーソルを合わせると、次の画像に示すように、右上隅に拡張アイコンが表示されます。
次の画像に示すように、ユーザーが拡張アイコンを選択すると、画像がステージ ビューに表示されます。
ステージ ビューでは、ユーザーは画像を拡大および縮小できます。 この機能が必要なアダプティブ カードの画像を選択できます。
注意
- 拡大および縮小機能は、アダプティブ カードの画像の種類である画像要素にのみ適用されます。
- Teams モバイルア プリの場合、アダプティブ カードの画像のステージ ビュー機能が既定で利用できます。 ユーザーは、
allowExpand属性が存在するかどうかに関係なく、画像をタップするだけでアダプティブ カードの画像をステージ ビューで表示できます。
HTML を使用してカードを書式設定する
次のカード タイプは、Teams での HTML 書式設定をサポートしています。
- Office 365 コネクタ カード: 制限付き Markdown と HTML 書式設定は、Office 365 コネクタ カードでサポートされています。
- ヒーロー カードとサムネイル カード: HTML タグは、ヒーロー カードやサムネイル カードなどの簡易カードでサポートされています。
デスクトップ版とモバイル版の Teams for Office 365 コネクタ カードと簡易カードでは、書式設定が異なります。 このセクションでは、コネクタ カードと簡易カードの HTML 書式の例を参照できます。
コネクタ カードでは、Markdown と HTML の書式設定が制限されています。
| Style | 例 | HTML |
|---|---|---|
| 太字 | text | <strong>text</strong> |
| 斜体 | text | <em>text</em> |
| ヘッダー (レベル 1–3) | Text | <h3>Text</h3> |
| 取り消し線 | <strike>text</strike> |
|
| 記号付きリスト |
|
<ul><li>text</li><li>text</li></ul> |
| 番号付きリスト |
|
<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 書式設定が表示されます。
iOS では、次の図に示すように HTML 書式設定が表示されます。
iOS 用 HTML を使用するコネクタ カードには、次の問題があります。
- インライン イメージは、コネクタ カードの Markdown または HTML を使用して iOS ではレンダリングされません。
- 書式設定済みのテキストはレンダリングされますが、背景が灰色ではありません。
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>"
}
]
}
}