従来の操作可能なメッセージ カード リファレンスLegacy actionable message card reference

注意

このドキュメントでは、操作可能なメッセージ カード形式の元の JSON 形式について説明します。This document describes the original JSON format for the actionable message card format. これは、アダプティブ カード形式に置き換えられました。This has been replaced with the Adaptive Card format. Microsoft は新しい操作可能なメッセージの統合には、アダプティブ カード形式の使用をおすすめします。既存の統合は、アダプティブ カード形式への更新を検討してください。Microsoft recommends that new actionable message integrations use the Adaptive Card format, and existing integrations consider updating to Adaptive Card format.

カードはひとめでわかる読みやすい情報を提供し、ユーザーがすぐに理解して、該当する場合にそれを基に行動を起こせるようであるべきです。したがって、優れたカードをデザインするための指針は「クロムよりもコンテンツ」です。つまり、カードは要点をついたものとし、アイコンやカスタム色などの煩雑になりかねないものの使用は最小限に抑えるということです。Cards are meant to provide easy to read, at-a-glance information that users can very quickly decipher and act upon when appropriate. As such, the guiding principle for designing great card is "content over chrome," which means cards are straight to the point and minimize the use of anything that would be distracting such as icons or custom colors.

カードのプレイグラウンドCard playground

カードのデザインを調べる準備はできていますか。カードのプレイグラウンドに移動してください。ここでは、関連する JSON ペイロードを編集するにつれてカードの外観が変わる様子を確認できます。Ready to experiment with your card design? Head to the Card Playground which allows you to see what your card will look like as you edit the associated JSON payload.

デザインのガイドラインDesign guidelines

テキストの書式設定Text formatting

カードのすべてのテキスト フィールドとそのセクションは、Markdown を使用して書式設定できます。基本的な Markdown がサポートされています。All text fields in a card and its section can be formatted using Markdown. We support basic Markdown.

重要

すべてのフィールドは Markdown として処理されるため、Markdown 特殊文字 (* または # など) は必要に応じてエスケープしてください。Since all fields are processed as Markdown, be sure to escape Markdown special characters (such as * or #) if needed.

効果Effect MarkdownMarkdown
斜体Italics *Italic*
太字Bold **Bold**
太字斜体Bold italics ***Bold Italic***
取り消し線Strike-through ~~Strike-through~~
リンクLinks [Microsoft](https://www.microsoft.com)
見出し (<h1> から <h6>)Headings (<h1> through <h6> # Heading から ###### Heading# Heading through ###### Heading
箇条書きBulleted lists * List item または - List item* List item or - List item

ヒント

テキスト フィールドを書式設定する場合、これらのガイドラインに従ってください。Follow these guidelines when formatting text fields.

  • テキストの書式設定には Markdown をご使用くださいDo use Markdown to format text.
  • カードには HTML マークアップを使用しないでください。HTML は無視され、プレーン テキストとして扱われます。Don't use HTML markup in your cards. HTML is ignored and treated as plain text.

セクションを使用するUsing sections

カードが単一の「エンティティ」を表す場合、セクションをまったく使用しないで済ませることもできます。とは言え、セクションは、カードでデータを表現するのに役立つことの多い、「アクティビティ」の概念をサポートします。If your card represents a single "entity", you may be able to get away with not using any section. That said, sections support the concept of an "activity" which is often a good way to represent data in a card.

カードが複数の「エンティティ」を表す場合は (たとえば、特定のニュース ソースのダイジェストである場合)、複数のセクションを使用して、各「エンティティ」に 1 つのセクションを割り当てたいと思うに違いありません。If your card represents multiple "entities" or is, for instance, a digest for a particular news source, you will definitely want to use multiple sections, one per "entity."

ヒント

カードのレイアウトを計画する場合、これらのガイドラインに従ってください。Follow these guidelines when planning the layout of your card.

  • データを論理的にグループ化する場合は、セクションをご使用くださいDo use sections to logically group data together.
  • 単一の論理的データ グループを複数のセクションで表現できる場合もあります。この場合、カードの情報の記載順序はより柔軟になります。たとえば、アクティビティの前にファクトのリストを示すことができるようになります。Sometimes, multiple sections MAY be used to represent a single logical group of data; this allows for more flexibility on ordering the information presented in the card. For example, it makes it possible to display a list of facts before an activity.
  • 含めるセクションは 10 を超えないようにしてください。カードは読みやすくするための手段です。カードの情報が多すぎると、ユーザーに意味が通じなくなります。Don't include more than 10 sections. Cards are meant to be easy to read; if there is too much information in a card, it will be lost on the user.
  • ダイジェスト型のカードの場合、カードの最後に「完全ダイジェストの表示」アクションを追加することをご検討ください。For digest-like cards, consider adding a "View full digest" action at the end of the card.

カードのフィールドCard fields

フィールドField 種類Type 説明Description
@type StringString 必須。MessageCard に設定する必要があります。Required. Must be set to MessageCard.
@context StringString 必須。https://schema.org/extensions に設定する必要があります。Required. Must be set to https://schema.org/extensions.
correlationId UUIDUUID correlationId プロパティは、トラブルシューティングの問題のログを検索するプロセスを簡素化します。The correlationId property simplifies the process of locating logs for troubleshooting issues. 操作可能なカードを送信する場合、サービスでこのプロパティに一意の UUID を設定してログ記録することをお勧めします。We recommend that when sending an actionable card, your service should set and log a unique UUID in this property.

ユーザーがカード上でアクションを呼び出すと、Office 365 はサービスに対して Card-Correlation-Id ヘッダーと Action-Request-Id ヘッダーを含む POST 要求を送信します。When the user invokes an action on the card, Office 365 sends the Card-Correlation-Id and Action-Request-Id headers in the POST request to your service. Card-Correlation-Id にはカードの correlationId プロパティと同じ値が含まれます。Card-Correlation-Id contains the same value as the correlationId property in the card. Action-Request-Id は、Office 365 で生成された一意の UUID であり、ユーザーによって実行された特定のアクションを見つけるのに役立ちます。Action-Request-Id is a unique UUID generated by Office 365 to help locate specific action performed by a user. アクションの POST 要求を受信するとき、サービスではこの両方の値をログ記録する必要があります。Your service should log both of these values when receiving action POST requests.
expectedActors 文字列の配列Array of String 省略可能。Optional. これには、アクション エンドポイントに必要とされる受信者のメール アドレスの一覧が含まれています。This contains a list of expected email addresses of the recipient for the action endpoint.

ユーザーは複数のメール アドレスを持つことができ、アクション エンドポイントには、ベアラー トークンの sub クレームに提示するための特定のメール アドレスは必要でない場合があります。A user can have multiple email addresses and the action endpoint might not be expecting the particular email address presented in the sub claim of the bearer token. たとえば、ユーザーは john.doe@contoso.com または john@contoso.com の両方のメール アドレスを持つことができますが、アクション エンドポイントは、ベアラー トークンの sub クレームで john@contoso.com を受信する必要があります。For example, a user could have both the john.doe@contoso.com or john@contoso.com email address, but the action endpoint expects to receive john@contoso.com in the sub claim of the bearer token. このフィールドを ["john@contoso.com"] に設定すると、sub クレームに必要なメール アドレスが入ります。By setting this field to ["john@contoso.com"], the sub claim will have the expected email address.
originator 文字列String 電子メール経由で送信する場合は必須です。コネクタ経由で送信する場合は該当しません。Required when sent via email, not applicable when sent via connector. 操作可能な電子メールの場合は、操作可能な電子メールの開発者ダッシュボードで生成されるプロバイダー ID に設定する必要があります。For actionable email, MUST be set to the provider ID generated by the Actionable Email Developer Dashboard.
summary StringString 通常、summary プロパティは Outlook のリスト ビューに表示され、カードの内容をすばやく判断する手段となります。The summary property is typically displayed in the list view in Outlook, as a way to quickly determine what the card is all about.

必ず概要を含めてくださいDo always include a summary.
概要に詳細情報を含めないでください。たとえば、Twitter の投稿の場合、概要には単に「@someuser からの新しいツイート」と示し、ツイートの内容自体には言及しません。Don't include details in the summary. For example, for a Twitter post, a summary might simply read "New tweet from @someuser" without mentioning the content of the tweet itself.
themeColor StringString カードのカスタム ブランド カラーを指定します。この色は目障りにならないように表示されます。Specifies a custom brand color for the card. The color will be displayed in a non-obtrusive manner.

カードを独自の色でブランド化するために themeColorご使用くださいDo use themeColor to brand cards to your color.
状態を示すために themeColor使用しないでくださいDon't use themeColor to indicate status.
hideOriginalBody BooleanBoolean 電子メール メッセージ内のカードにのみ適用されますOnly applies to cards in email messages

true に設定すると、メッセージの HTML 本文が非表示になります。これは、コンテンツの表現手段として HTML 本文自体よりもカードのほうが優れていたり役に立ったりする場合に非常に便利です。カードにアクションが含まれている場合は特にそう言えます (下記を参照)。When set to true, causes the HTML body of the message to be hidden. This is very useful in scenarios where the card is a better or more useful representation of the content than the HTML body itself, which is especially true when the card contains actions (see below.)

次の場合、元の HTML 本文を非表示にすることをご検討ください。Consider hiding the original HTML body:
  • ユーザーに必要な情報すべてがカード自体に含まれるIf the card itself contains all the information a user would need
  • カードの内容が本文の内容と重複しているIf the content of the card is redundant with the content of the body
HTML 本文を非表示にする場合であっても、適切な HTML 本文を必ず含めてください。カードをサポートしていない電子メール クライアントは、HTML 本文しか表示できません。また、電子メールに返信したり、それを転送したりする場合にカードは含まれず、HTML 本文のみが含まれます。Do always include a nice HTML body, even if it is going to be hidden. The HTML body is the only thing an email client that doesn't support cards will be able to display. Furthermore, cards are not included when replying to or forwarding emails, only the HTML body.
カードに記されている情報を補完している場合、本文を非表示にしないでください。たとえば、経費報告書の承認の本文には報告書の詳細を示し、カードには承認/拒否のアクションを含めた簡単な概要のみを表示できます。Don't hide the body when it is complementary to the information presented in the card. For example, the body of an expense report approval might describe the report in great details while the card just presents a quick summary along with approve/decline actions.
title StringString title プロパティは、カードの最上部に目立つ方法で表示するためのものです。ユーザーがすぐに内容を予期できるよう、カードのコンテンツを紹介するために使用します。The title property is meant to be rendered in a prominent way, at the very top of the card. Use it to introduce the content of the card in such a way users will immediately know what to expect.

例:Examples:
  • 毎日のニュースDaily news
  • 新しいバグが登録されましたNew bug opened
  • タスク <name of task> が割り当てられましたTask <name of task> assigned
タイトルは、長い文ではなく短くしてくださいDo keep title short, don't make it a long sentence.
タイトルで参照しているエンティティの名前に言及してくださいDo mention the name of the entity being referenced in the title.
タイトルでハイパーリンク (Markdown 経由) を使用しないでくださいDon't use hyperlinks (via Markdown) in the title.
text StringString text プロパティは、カードのタイトルの下に通常のフォントで表示するためのものです。参照しているエンティティの説明や、ニュース記事の要約などのコンテンツを表示するために使用します。The text property is meant to be displayed in a normal font below the card's title. Use it to display content, such as the description of the entity being referenced, or an abstract of a news article.

単語を強調するための太字や斜体、外部リソースへのリンクなど、簡単な Markdown をご使用くださいDo use simple Markdown, such as bold or italics to emphasize words, and links to external resources.
text プロパティに行動喚起を含めないでください。ユーザーはこの部分を読まないでも、カードの内容について把握できなければなりません。Don't include any call to action in the text property. Users should be able to not read it and still understand what the card is all about.
sections Section の配列Array of Section カードに含めるセクションのコレクション。A collection of sections to include in the card. セクションのフィールド」を参照してください。See Section fields.
potentialAction Actions の配列Array of Actions 対象カードで呼び出し可能なアクションのコレクション。「アクション」を参照してください。A collection of actions that can be invoked on this card. See Actions.

セクションのフィールドSection fields

フィールドField 種類Type 説明Description
title StringString セクションの title プロパティは、カードのタイトルほどは目立たないものの、人目につくフォントで表示されます。セクションを紹介し、その内容を要約するために使用します。カード全体を要約するカードの title プロパティと似ています。The title property of a section is displayed in a font that stands out while not as prominent as the card's title. It is meant to introduce the section and summarize its content, similarly to how the card's title property is meant to summarize the whole card.

タイトルは、長い文ではなく短くしてくださいDo keep title short, don't make it a long sentence.
タイトルで参照しているエンティティの名前に言及してくださいDo mention the name of the entity being referenced in the title.
タイトルでハイパーリンク (Markdown 経由) を使用しないでくださいDon't use hyperlinks (via Markdown) in the title.
startGroup BooleanBoolean true に設定すると、startGroup プロパティによって、情報の論理的なグループ化を開始するマークが付けられます。通常、startGrouptrue に設定されたセクションは、カードの先行する要素と視覚的に区別されます。たとえば、Outlook の場合、水平方向の薄い区切り線が使用されます。When set to true, the startGroup property marks the start of a logical group of information. Typically, sections with startGroup set to true will be visually separated from previous card elements. For example, Outlook uses a subtle horizontal separation line.

An example of the separation of sections with startGroup=true

別のオブジェクトを示すセクション (たとえば、ダイジェスト内の複数のツイートなど) を区切るには、startGroup使用しますDo use startGroup to separate sections that represent different objects; for example, multiple tweets in a digest.
activityImage
activityTitle
activitySubtitle
activityText
文字列String これらの 4 つのプロパティは 1 つの論理グループを形成します。activityTitleactivitySubtitleactivityTextactivityImage の横に表示されます。その際、カードが表示されるデバイスのフォーム ファクターに応じた適切なレイアウトが使用されます。たとえば、Outlook on the Web の場合、activityTitleactivitySubtitleactivityText は、2 列のレイアウトを使用して activityImage の右側に表示されます。These four properties form a logical group. activityTitle, activitySubtitle and activityText will be displayed alongside activityImage, using a layout appropriate for the form factor of the device the card is being viewed on. For instance, in Outlook on the Web, activityTitle, activitySubtitle and activityText are displayed on the right of activityImage, using a two-column layout:

An example activity layout

これらの activity フィールドは次のようなシナリオで使用します。Use the activity fields for scenarios such as:
  • ユーザーの活動内容Someone did something
    • activityImage を使用してそのユーザーの画像を表示します。Use activityImage to display the picture of that person.
    • activityTitle を使用して実行内容を要約します。短く、要点をついたものとします。Use activityTitle to summarize what they did. Make it short and to the point.
    • activitySubtitle を使用して、アクションを実行した日時やそのユーザーのハンドルなどを示します。Use activitySubtitle to show, for instance, the date and time the action was taken, or the person's handle.
      • activitySubtitle は控え目なフォントで表示されますactivitySubtitle will be rendered in a more subdued font
      • 重要な情報を含めないでくださいDon't include essential information
      • 行動喚起を含めないでくださいDon't include calls to action
      • Markdown 書式設定を使用しないでくださいAvoid Markdown formatting
    • activityText を使用して、アクティビティの詳細を示します。Use activityText to provide details about the activity.
      • 単語を強調したり、外部ソースにリンクしたりするために簡単な Markdown をご使用くださいDo use simple Markdown to emphasize words or link to external sources
      • 行動喚起を含めないでくださいDon't include calls to action
  • ニュース記事の要約A news article abstract
    • activityImage を使用して、記事に関連する画像を表示しますUse activityImage to display the picture associated with the article
    • activitySubtitle を使用して、記事が最初に投稿された日時を表示しますUse activitySubtitle to display the date and time the article was originally posted
    • activityText を使用して、実際の要約を表示しますUse activityText to display the actual abstract
heroImage イメージImage heroImage を使用して、画像をカードの中心的存在にします。たとえば、画像のあるツイートでは、その画像を前面中央に配置することが望まれます。Use heroImage to make an image the centerpiece of your card. For example, a tweet that contains an image will want to put that image front and center:

An example of a hero image in a message card

また、heroImage を使用して、下に示す「TINYPulse – Engage」バナーのようにカードにバナーを追加することもできます。heroImage can also be used to add a banner to your card, like the "TINYPulse – Engage" banner below:

An example of using a heroImage to create a banner
text StringString セクションの text プロパティはカードの text プロパティと大変よく似ています。これは同じ目的で使用できます。The section's text property is very similar to the text property of the card. It can be used for the same purpose.
facts 名前と値の組の配列Array of name/value pairs ファクトは、セクションの非常に重要なコンポーネントです。多くの場合、ユーザーにとって本当に重要な情報が含まれます。Facts are a very important component of a section. They often contain the information that really matters to the user.

ファクトは、迅速かつ効率的に読むことができる形式で表示されます。たとえば、Outlook on the Web では、ファクトは 2 列レイアウトで表示されます。ファクト名のほうが若干目立つフォントで示されます。Facts are displayed in such a way that they can be read quickly and efficiently. For example, in Outlook on the Web, facts are presented in a two-column layout, with fact names rendered in a slightly more prominent font:

An example of facts being displayed

ファクトには多くの使用法があります。シナリオ例: There are many uses for facts. Some scenarios:
  • バグが作成された場合A bug was created
    • バグ ID:1234Bug ID: 1234
    • 登録者:内田 順Opened by: Adele Vance
    • 担当者:松本 大貴Assigned to: Alex Darrow
  • アプリケーション使用状況レポートApplication usage report
    • アプリケーション名:Contoso CRM アプリApplication name: Contoso CRM App
    • 期間:2016 年 8 月 1 日から 2016 年 9 月 30 日Period: August 1, 2016 - September 30, 2016
    • ユーザー数:542Number of users: 542
    • セッション数:2056Number of sessions: 2056
    • アプリケーションで費やされた平均時間:76 秒Average time spend in the application: 76 seconds
  • 経費の承認Expense approval
    • 送信者:金子 直紀Submitted by: Pradeep Gupta
    • 送信日:2016 年 10 月 21 日Date submitted: October 21, 2016
    • 合計金額: 142,695 円Total amount: $1,426.95
重要な情報をカードやセクションの text プロパティ内に組み込むのではなく、facts をご使用くださいDo use facts instead of embedding important information inside the text property of either the card or the section.
ファクト名は短くしてくださいDo keep fact names short.
ファクト値は長すぎないようにしてくださいAvoid making fact values too long.
ファクト名と値のどちらにも Markdown 書式設定を使用しないでください。ファクトが、最も効果的な方法で意図どおりに表示されるようにしてください。Avoid using Markdown formatting for both fact names and values. Let facts be rendered as intended as that is how they will have the most impact.
ただし、ファクト値のリンクに関してのみ Markdown をご使用ください。たとえば、ファクトが外部ドキュメントを参照している場合、そのファクトの値が対象ドキュメントにリンクするようにします。Do however use Markdown for links in fact values only. For instance, if a fact references an external document, make the value of that fact a link to the document.
実用的な価値のないファクトは追加しないでください。たとえば、すべてのカードで値がいつでも同じファクトは意味がなく、スペースの無駄です。Don't add a fact without a real purpose. For instance, a fact that would always have the same value across all cards is not interesting and a waste of space.
images 画像オブジェクトの配列Array of Image objects images プロパティを使用すると、セクション内にフォト ギャラリーを含めることができます。そのフォト ギャラリーは、表示するデバイスのフォーム ファクターに関係なく、いつでも利用しやすい方法で表示されます。たとえば、Outlook on the Web では、画像は水平方向のサムネイルの帯として表示できます。画面にすべてが収まらない場合には、コレクションをスクロールできるコントロールが示されます。モバイル機器の場合、画像は単一のサムネイルとして表示できます。ユーザーはコレクションを指でスワイプできます。The images property allows for the inclusion of a photo gallery inside a section. That photo gallery will always be displayed in a way that is easy to consume regardless of the form factor of the device it is being viewed on. For instance, in Outlook on the Web, images might be displayed as a horizontal strip of thumbnails with controls allowing to scroll through the collection if it doesn't all fit on the screen. On mobile, images might be displayed as a single thumbnail, with the user able to swipe through the collection with their finger.
potentialAction Actions の配列Array of Actions 対象セクションで呼び出し可能なアクションのコレクション。「アクション」を参照してください。A collection of actions that can be invoked on this section. See Actions.

画像オブジェクトImage object

セクションの heroImage プロパティと images プロパティで使用されるとおりに画像を定義します。Defines an image as used by the heroImage and images property of a section.

フィールドField 種類Type 説明Description
image StringString 画像の URL。The URL to the image.
title StringString 画像の簡潔な説明。通常、title は、ユーザーが画像の上にマウスをポイントするとヒントに表示されます。A short description of the image. Typically, title is displayed in a tooltip as the user hovers their mouse over the image.

アクションActions

カードは、ユーザーが電子メール クライアントから離れることなくアクションを迅速に実行できるという意味においてとても強力です。カードのデザイン時に、操作可能なカードにすることをご検討ください。それにより、ユーザー エンゲージメントと生産性が高まります。Cards are very powerful in the sense that they allow users to take quick actions without leaving their email client. When designing cards, consider making them actionable, as that will increase user engagement and productivity.

アクションは potentialAction プロパティを使用して指定します。このプロパティは、カード自体と各セクションの両方で利用できます。Actions are specified using the potentialAction property which is available both on the card itself and on each section. アクションには次の 4 種類があります。There are four types of actions:

potentialAction コレクションには (種類に関係なく) 最大 4 つのアクションを含めることができます。There can be a maximum of 4 actions (whatever their type) in a potentialAction collection.

  • 最もよく利用するアクションなど、エンド ユーザーに最大の効果をもたらすアクションを含めてくださいDo include actions that will make the biggest impact for the end user, like the most repetitive ones.
  • アクションを 4 つ追加できますが、必ずしもそうしなければならないわけではありません。多くの場合、アクションの数が少ないほどエクスペリエンスが向上します。Don't add 4 actions just because you can. In many cases, fewer actions will lead to a better experience.
  • 外部アプリケーションを置き換える目的でカードを作成しないでください。カードはそのようなアプリケーションを補完するもので、その代わりにはなりません。Don't craft your cards in an effort to replace an external application. Cards are meant to complement such applications, not to replace them.

OpenUri アクションOpenUri action

別のブラウザーまたはアプリで URI を開きます。Opens a URI in a separate browser or app.

リンクは Markdown で実現できますが、OpenUri アクションには、異なるオペレーティング システムに異なる URI を指定できるという利点があります。これにより、モバイル デバイス上のアプリでリンクを開くことができるようになります。Although links can be achieved through Markdown, an OpenUri action has the advantage of allowing you to specify different URIs for different operating systems, which makes it possible to open the link in an app on mobile devices.

  • モバイル デバイス上のアプリでリンクを開くことがユーザーにとって利点となることが明白な場合は、Markdown のリンクではなく OpenUri アクションの使用をご検討くださいConsider using an OpenUri action rather than a link in Markdown if there is a clear advantage for your users in their ability to open the link in an app on their mobile device.
  • エンティティを元の外部アプリで表示するには、少なくとも 1 つの OpenUri アクションを含めてくださいDo include at least an OpenUri action to view the entity in the external app it comes from.
  • OpenUri アクションは potentialAction コレクションの最後に含めてくださいDo make the OpenUri action the last one in the potentialAction collection.
フィールドField 種類Type 説明Description
name StringString name プロパティは、画面上に表示されるアクションを示すテキストを定義します。The name property defines the text that will be displayed on screen for the action.

動詞をご使用ください。たとえば、「期限」ではなく「期限を設定する」を使用したり、「メモ」ではなく「メモを追加する」を使用したりします。動詞としても使用される名詞の場合は (「コメント」など)、名詞だけでも十分です。Do use verbs. For instance, use "Set due date" instead of "Due date" or "Add note" instead of "Note." In some cases, the noun itself just works because it is also a verb: "Comment"
OpenUri には、クライアントからすぐにアクションを実行できるかのような名前を付けないでください。代わりに、アクションには、「<サイト/アプリの名前> で表示する」や「<サイト/アプリの名前> で開く」などの名前を指定してください。Don't name an OpenUri action in such a way that it suggests the action can be taken right from the client. Instead, name the action "View in <name of site/app>" or "Open in <name of site/app>"
targets 配列Array targets プロパティは、ターゲット オペレーティング システムにつき 1 つの URI を定義する名前と値の組のコレクションです。The targets property is a collection of name/value pairs that defines one URI per target operating system.

サポートされているオペレーティング システム値は、defaultwindowsiOSandroid です。ほとんどの場合、default オペレーティング システムでは、実際のオペレーティング システムに関係なく、単に Web ブラウザーで URI を開きます。Supported operating system values are default, windows, iOS and android. The default operating system will in most cases simply open the URI in a web browser, regardless of the actual operating system.

targets プロパティの例:Example targets property:
"targets": [
{ "os": "default", "uri": "https://yammer.com/.../123" },
{ "os": "iOS", "uri": "yammer://u/123" },
{ "os": "android", "uri": "yammer://u/123" },
{ "os": "windows", "uri": "yammer://u/123" }
]

HttpPOST アクションHttpPOST action

外部 Web サービスを呼び出します。Makes a call to an external Web service.

HttpPOST アクションが実行されると、target フィールドの URL に対して POST 要求が行われ、ターゲット サービスが呼び出し元を認証する必要があります。これは、ターゲット URL に埋め込まれた限定的な目的のトークンなど、さまざまな方法で実行できます。特定のシナリオに最適なセキュリティ メカニズムの選択についての詳細とヘルプは、「操作可能なメッセージのセキュリティ要件」を参照してください。When an HttpPOST action is executed, a POST request is made to the URL in the target field, and the target service needs to authenticate the caller. This can be done in a variety of ways, including via a Limited Purpose Token embedded in the target URL. For more information and help on choosing the security mechanism that works best for your particular scenario, please see Security requirements for actionable messages.

フィールドField 種類Type 説明Description
name StringString name プロパティは、画面上に表示されるアクションを示すテキストを定義します。The name property defines the text that will be displayed on screen for the action.

動詞をご使用ください。たとえば、「期限」ではなく「期限を設定する」を使用したり、「メモ」ではなく「メモを追加する」を使用したりします。動詞としても使用される名詞の場合は (「コメント」など)、名詞だけでも十分です。Do use verbs. For instance, use "Set due date" instead of "Due date" or "Add note" instead of "Note." In some cases, the noun itself just works because it is also a verb: "Comment"
target StringString アクションを実装する、サービスの URL エンドポイントを定義します。Defines the URL endpoint of the service that implements the action.
headers Header の配列Array of Header POST 要求がターゲット URL に送信されるときに処理される、一連の HTTP ヘッダーを表す Header オブジェクトのコレクション。Header をご覧ください。A collection of Header objects representing a set of HTTP headers that will be emitted when sending the POST request to the target URL. See Header.
body StringString POST 要求の本文。The body of the POST request.
bodyContentType StringString bodyContentType はオプションで、POST 要求の本文の MIME タイプを指定します。The bodyContentType is optional and specifies the MIME type of the body in the POST request. コンテンツ タイプを指定することが必要なサービスもあります。Some services require that a content type be specified. 有効な値は application/jsonapplication/x-www-form-urlencoded です。Valid values are application/json and application/x-www-form-urlencoded. 指定がない場合は application/json が使用されます。If not specified, application/json is assumed.

Header オブジェクトは、HTTP ヘッダーを表す名前/値のペアです。The Header object is a name/value pair that represents an HTTP header.

フィールドField 種類Type 説明Description
name StringString ヘッダー名The header name
value StringString ヘッダー値The header value

アクション実行の成功または失敗をレポートするReporting an action's execution success or failure

HttpPOST アクションは、応答に CARD-ACTION-STATUS HTTP ヘッダーを含めることができます。このヘッダーには、アクションの実行結果、つまり成功と失敗のどちらであるかを示すテキストを含めることができます。HttpPOST actions can include the CARD-ACTION-STATUS HTTP header in their response. This header is meant to contain text that indicates the outcome of the action's execution, whether it has succeeded or failed.

このヘッダーの値は、カード内の予約済みエリアに一貫した形式で表示されます。これはカードとともに保存されるので後で表示することができます。そのため、ユーザーは、特定のカードで実行済みのアクションについて思い出すことができます。The value of the header will be displayed in a consistent way in a reserved area of the card. It is also saved with the card so it can be displayed later on, so users can be reminded of the actions that have already been executed on a given card.

ヒント

HttpPOST アクションに対する応答を返す場合には、これらのガイドラインに従ってください。Follow these guidelines when returning a response to HttpPOST actions.

  • 応答で CARD-ACTION-STATUS ヘッダーを返してくださいDo return the CARD-ACTION-STATUS header in your responses.
  • このヘッダー内のメッセージを可能な限り意味ある役立つ情報にしてください。たとえば、経費報告書の「承認」アクションの場合、次のようにできます。Do make the message in that header as informative and meaningful as possible. For instance, for an "approve" action on an expense report:
    • 成功した場合は、「アクションが成功しました」ではなく、「経費が承認されました」とします。In case of success, don't return "The action was successful", instead return "The expense was approved"
    • 失敗した場合は、「アクションが失敗しました」ではなく、「今回、経費が承認されませんでした。後でもう一度お試しください」を返します。In case of failure, don't return "The action failed", instead return "The expense couldn't be approved at this time. Please try again later"
  • CARD-ACTION-STATUS ヘッダーでは、アクションの実行者の名前も実行時刻についても言及しないでください。これらの情報はどちらも自動的に追加され、一貫した形式で表示されます。Don't mention either the name of the person taking the action nor the time the action is being taken in your CARD-ACTION-STATUS header. Both these pieces of information will be automatically added for you and displayed in a consistent way.

カードの更新Refresh cards

カードの更新は非常に強力なメカニズムで、HttpPOST アクションが正常に完了するとすぐにカードを完全に更新できるようにします。カードの更新が役立つシナリオは次のように多岐に及びます。Refresh cards are a very powerful mechanism that allow HttpPOST actions to fully update the card on the fly as the action successfully completes. There are many scenarios that benefit from refresh cards:

  • 承認シナリオ (例: 経費報告書)Approval scenario (e.g. expense report)
    • 要求が承認または拒否されると、カードは更新されて承認/拒否アクションが削除され、承認または拒否されたというファクトが反映されるようにコンテンツが更新されますOnce the request is approved or rejected, the card is refreshed to remove the approve/decline actions and update its content so it reflects the fact that it's been approved or declined
  • タスクの進捗状況Task status
    • タスクに対して期限の設定などのアクションが実行されると、カードが更新されて、ファクトに更新済み期限が含まれるようになりますWhen an action is taken on a task, such as setting its due date, the card refreshes to include the updated due date in its facts
  • アンケートSurvey
    • 質問に対して回答されると、カードが次のように更新されます。Once the question has been answered, the card is refreshed so:
      • ユーザーが回答できないようになりますIt no longer allows the user to respond
      • ユーザーの実際の回答の横に、「このアンケートに回答してくださり、ありがとうございます」などの更新済み状態が表示されますIt shows updated status, like "Thanks for responding to this survey" alongside the user's actual response
      • ユーザーがそのアンケートをオンラインで閲覧できるようにする、新しい OpenUri アクションを含めることもできますPotentially include a new OpenUri action that allows the user to consult the survey online

HttpPOST アクションの結果としてカードを更新するには、サービスで以下を実行する必要があります。To refresh a card as a result of an HttpPOST action, a service needs to do the following:

  • 受信した HTTP POST 要求への応答本文に新しいカードの JSON ペイロードを含めます。Include the JSON payload of the new card in the body of the response to the HTTP POST request it received.
  • 応答本文を解析して新しいカードを抽出する必要があることを受信側クライアントに知らせるため、応答に CARD-UPDATE-IN-BODY: true HTTP ヘッダーを追加します (これにより、カードの更新がまったく含まれないときに不要な処理が行われないようになります)。Add the CARD-UPDATE-IN-BODY: true HTTP header to the response, in order to let the receiving client know that it should parse the response body and extract a new card (this is to avoid unnecessary processing when no refresh card is included.)

ヒント

カードの更新を返す場合にはこれらのガイドラインに従ってください。Follow these guidelines when returning refresh cards.

  • 1 回だけ実行できるアクションにカードの更新をご使用ください。このようにすると、それ以上実行できないアクションがカードの更新に含まれないようになりますDo use refresh cards with actions that can only be taken a single time. In those cases, the refresh card would not include any action that cannot be taken anymore
  • 実行対象のエンティティの状態を変更するアクションでカードの更新をご使用ください。このようにすると、カードの更新にエンティティの更新済み情報が含まれ、実行できるアクション セットが変更される可能性がありますDo use refresh cards with actions that change the state of the entity they are performed on. In those cases, the refresh card should include updated information about the entity, and MAY change the set of actions that can be performed
  • ユーザーと会話するためにカードの更新を使用しないでください。たとえば、複数の手順で構成される「ウィザード」にカードの更新を使用しないでくださいDon't use refresh cards to lead a conversation with the user. For instance, don't use refresh cards for a multi-step "wizard"
  • エンティティを元の外部アプリで表示するには、少なくとも 1 つの OpenUri アクションを含めてくださいDo include at least an OpenUri action to view the entity in the external app it comes from.

ActionCard アクションActionCard action

1 つ以上の入力と、関連するアクション (OpenUri タイプまたは HttpPOST タイプのどちらか) が含まれる追加の UI を示します。Presents additional UI that contains one or more Inputs, along with associated actions that can be either OpenUri or HttpPOST types.

ユーザーから追加入力を求めるアクションの場合、ActionCard アクションをご使用ください。シナリオ例: Do use an ActionCard action if an action requires additional input from the user. Some scenarios:

  • アンケートに回答するResponding to a survey
  • バグに対するコメントを追加するAdding a comment to a bug
  • 経費報告書を拒否する理由を示すProviding justification for declining an expense report

既定では、ActionCard アクションは、カードの UI のボタンまたはリンクとして表示されます。クリックすると、そのボタンには、アクション カードで定義された入力とアクションが含まれる追加 UI が表示されます。By default, an ActionCard action will be represented as a button or link in the card's UI. When clicked, that button will display an additional piece of UI containing the inputs and actions defined in the action card.

potentialAction コレクション内にあるのが単一の ActionCard アクションの場合、Outlook はアクションを「事前展開」した状態で (たとえば、入力とアクションが直ちに表示される状態で) 表示します。If there is a single ActionCard action in a potentialAction collection, then Outlook will represent that action "pre-expanded," e.g. its inputs and actions will be immediately visible.

フィールドField 種類Type 説明Description
name StringString name プロパティは、画面上に表示されるアクションを示すテキストを定義します。The name property defines the text that will be displayed on screen for the action.

動詞をご使用ください。たとえば、「期限」ではなく「期限を設定する」を使用したり、「メモ」ではなく「メモを追加する」を使用したりします。動詞としても使用される名詞の場合は (「コメント」など)、名詞だけでも十分です。Do use verbs. For instance, use "Set due date" instead of "Due date" or "Add note" instead of "Note." In some cases, the noun itself just works because it is also a verb: "Comment"
inputs Inputs の配列Array of Inputs inputs プロパティは、アクション カードの UI に表示されるさまざまな入力を定義します。「入力」を参照してください。The inputs property defines the various inputs that will be displayed in the action card's UI. See Inputs
actions Actions の配列Array of Actions actions プロパティは、Action オブジェクトの配列で、OpenUri 型または HttpPOST 型のいずれかの配列です。ActionCard アクションの actions プロパティに、別の ActionCard アクションを含めることはできません。The actions property is an array of Action objects, that can be either of type OpenUri or HttpPOST. The actions property of an ActionCard action cannot contain another ActionCard action.

ActionCard の例Example ActionCard

{
  "@type": "ActionCard",
  "name": "Comment",
  "inputs": [
    {
      "@type": "TextInput",
      "id": "comment",
      "isMultiline": true,
      "title": "Input's title property"
    }
  ],
  "actions": [
    {
      "@type": "HttpPOST",
      "name": "Action's name prop.",
      "target": "https://yammer.com/comment?postId=123",
      "body": "comment={{comment.value}}"
    }
  ]
}

入力Inputs

サポートされている入力は、TextInputDateInputMultichoiceInput の 3 種類です。Three types of inputs are supported: TextInput, DateInput, and MultichoiceInput.

共通フィールドCommon fields

以下のフィールドは、すべての入力の種類で共通です。The following fields are common to all input types.

フィールドField 種類Type 説明Description
id StringString 入力を一意に識別します。それにより、URL や HttpPOST アクションの本文で入力を参照できます。「入力値の置換」を参照してください。Uniquely identifies the input so it is possible to reference it in the URL or body of an HttpPOST action. See Input value substitution.
isRequired ブール型 (Boolean)Boolean パラメーターとして入力値をとるアクションを実行する前に、ユーザーが値を入力する必要があるかどうかを示します。Indicates whether users are required to type a value before they are able to take an action that would take the value of the input as a parameter.

ユーザーが値を指定する必要がある場合には入力を必須にしてくださいDo make an input required if users MUST provide a value.
ある入力値が別の必須の入力値を補完する場合には、その入力を必須にすることをご検討ください。たとえば、「ご自分の車にどの程度、満足していますか」というアンケート質問を定義し、いくつかの選択肢の入力に続いて「回答についてご説明ください」という自由に記入できるテキスト入力部分を設けることができます。そのような説明を記すよう強いられることを好まず、結果としてアンケートに何も答えないユーザーもいるかもしれないことを念頭に置いてください。Consider making an input required if its value is complementary to that of another required input. For instance, you could define a survey question that asks "How satisfied are you with your car" with a multi choice input followed by "Please explain your answer" as a free text input. Keep in mind that some users might not like being forced into providing such explanations, and might as a result not respond to the survey at all.
入力が必須であることをユーザーに確実に伝えてください。入力の title プロパティにラベルを含めます。例: Comment (optional) または Please rate your experience (required)Do make sure users know which inputs are required. Include a label in the input's title property. For example: Comment (optional) or Please rate your experience (required).
title StringString 入力のタイトルを定義します。Defines a title for the input.
value StringString 入力の初期値を定義します。複数選択肢の入力の場合、値は、いずれかの入力選択肢の value プロパティと等しくなければなりません。Defines the initial value of the input. For multi-choice inputs, value must be equal to the value property of one of the input's choices.
TextInputTextInput

この入力の種類は、アンケート質問への回答など、ユーザーに自由形式のテキストの入力を求める場合に使用します。Use this input type when you need users to provide free text, such as the response to a survey question.

フィールドField 種類Type 説明Description
isMultiline BooleanBoolean テキスト入力で複数行テキストを受け入れるかどうかを示します。Indicates whether the text input should accept multiple lines of text.
maxLength NumberNumber 入力できる最大文字数を示します。Indicates the maximum number of characters that can be entered.
TextInput の例Example TextInput
{
  "@type": "TextInput",
  "id": "comment",
  "isMultiline": true,
  "title": "Input's title property"
}
DateInputDateInput

この入力の種類は、タスクの期限など、日付または時刻の入力をユーザーに求める場合に使用します。Use this input type when you need users to provide a date and or a time, such as for a task's due date.

フィールドField 種類Type 説明Description
includeTime BooleanBoolean 日付の入力で、日付に加えて時刻を選択できるようにするかどうかを示します。Indicates whether the date input should allow for the selection of a time in addition to the date.
DateInput の例Example DateInput
{
  "@type": "DateInput",
  "id": "dueDate",
  "title": "Input's title property"
}
MultichoiceInputMultichoiceInput

この入力の種類は、バグの状態、はい/いいえ/おそらくなど、事前に定義した選択肢の一覧から選択することをユーザーに求める場合に使用します。Use this input type when you need users to select from a list of pre-defined choices, such as a bug status, yes/no/maybe, etc.

フィールドField 種類Type 説明Description
choices 名前と値の組の配列Array of name/value pairs 複数選択肢の入力用に選択できる値を定義します。Defines the values that can be selected for the multichoice input.
isMultiSelect BooleanBoolean true に設定すると、ユーザーが複数の入力項目を選択できることを示します。指定した選択肢は、チェック ボックスの一覧として表示されます。既定値は、false です。If set to true, indicates that the user can select more than one choice. The specified choices will be displayed as a list of checkboxes. Default value is false.

An example multi-selection input
style String (normal(既定または expanded))String (normal(default or expanded)) isMultiSelectfalse の場合に style プロパティを expanded に設定すると、ホスト アプリケーションに対して画面上にすべての選択肢を (通常は一連のラジオ ボタンを使用して) 表示するよう指示することになります。When isMultiSelect is false, setting the style property to expanded will instruct the host application to try and display all choices on the screen, typically using a set of radio buttons.

An example expanded input
コンパクトな MultichoiceInput の例Example compact MultichoiceInput
{
  "@type": "MultichoiceInput",
  "id": "list",
  "title": "Pick an option",
  "choices": [
    { "display": "Choice 1", "value": "1" },
    { "display": "Choice 2", "value": "2" },
    { "display": "Choice 3", "value": "3" }
  ]
}
複数選択 MultichoiceInput の例Example multi-select MultichoiceInput
{
  "@type": "MultichoiceInput",
  "id": "list",
  "title": "Pick an option",
  "isMultiSelect": true,
  "choices": [
    { "display": "Choice 1", "value": "1" },
    { "display": "Choice 2", "value": "2" },
    { "display": "Choice 3", "value": "3" }
  ]
}
拡張 MultichoiceInput の例Example expanded MultichoiceInput
{
  "@type": "MultichoiceInput",
  "id": "list",
  "title": "Pick an option",
  "style": "expanded",
  "choices": [
    { "display": "Choice 1", "value": "1" },
    { "display": "Choice 2", "value": "2" },
    { "display": "Choice 3", "value": "3" }
  ]
}

入力値の置換Input value substitution

入力値は、ViewAction アクションまたは HttpPOST アクションの任意の URL で参照できます。HttpPOST アクションの本文でも参照できます。入力値が参照されると、アクションが実行される直前に入力の実際の値と置換されます。The value of an input can be referenced in any URL of a ViewAction or HttpPOST action. It can also be referenced in an HttpPOST action's body. When an input value is referenced, it is substituted with the actual value of the input right before the action is executed.

入力値を参照するには、次の形式を使用します。To reference an input's value, use the following format:

{{<id of input>.value}}

入力値の置換の例Input value substitution example
{
  "@type": "ActionCard",
  "name": "Comment",
  "inputs": [
    {
      "@type": "TextInput",
      "id": "comment",
      "isMultiline": true,
      "title": "Input's title property"
    }
  ],
  "actions": [
    {
      "@type": "HttpPOST",
      "name": "Action's name prop.",
      "target": "https://yammer.com/comment?postId=123",
      "body": "comment={{comment.value}}"
    }
  ]
}

InvokeAddInCommand アクションInvokeAddInCommand action

Outlook アドインの作業ウィンドウが開きます。Opens an Outlook add-in task pane. アドインがインストールされていない場合、ユーザーは、シングルクリックでアドインをインストールするように要求されます。If the add-in is not installed, the user is prompted to install the add-in with a single click.

InvokeAddInCommand アクションが実行されると、まず Outlook では要求されたアドインがインストールされ、ユーザーに対して有効になっているかどうかをチェックします。When an InvokeAddInCommand action is executed, Outlook first checks if the requested add-in is installed and turned on for the user. インストールされていない場合、アクションにアドインが必要であり、シングルクリックでアドインをインストールおよび有効にできることがユーザーに通知されます。If it is not, the user is notified that the action requires the add-in, and is able to install and enable the add-in with a single click. Outlook は要求されたもの開き、アクションによって指定されたすべての初期化コンテキストがアドインで使用可能になります。Outlook opens the requested , making any initialization context specified by the action available to the add-in.

詳細については、「操作可能なメッセージからの Outlook アドインの呼び出し」を参照してください。For more information, see Invoke an Outlook add-in from an actionable message.

フィールドField 種類Type 説明Description
name StringString name プロパティは、画面上に表示されるアクションを示すテキストを定義します。The name property defines the text that will be displayed on screen for the action.

動詞をご使用ください。たとえば、「期限」ではなく「期限を設定する」を使用したり、「メモ」ではなく「メモを追加する」を使用したりします。動詞としても使用される名詞の場合は (「コメント」など)、名詞だけでも十分です。Do use verbs. For instance, use "Set due date" instead of "Due date" or "Add note" instead of "Note." In some cases, the noun itself just works because it is also a verb: "Comment"
addInId UUIDUUID 要求されたアドインのアドイン ID を指定します。Specifies the add-in ID of the required add-in. アドイン ID はアドイン マニフェストの ID 要素にあります。The add-in ID is found in the Id element in the add-in's manifest.
desktopCommandId 文字列String 要求された作業ウィンドウを開くアドイン コマンド ボタンの ID を指定します。Specifies the ID of the add-in command button that opens the required task pane. コマンド ボタン ID は、アドイン マニフェストのボタンを定義するコントロール要素id 属性にあります。The command button ID is found in the id attribute of the Control element that defines the button in the add-in's manifest. 指定された Control 要素は MessageReadCommandSurface 拡張点の内部で Button の種類として定義し、コントロールの ActionShowTaskPane の種類として定義する必要があります。The specified Control element MUST be defined inside a MessageReadCommandSurface extension point, be of type Button, and the control's Action must be of type ShowTaskPane.
initializationContext ObjectObject 省略可能。Optional. 開発者は、このフィールドに任意の有効な JSON オブジェクトを指定できます。Developers may specify any valid JSON object in this field. 値は文字列にシリアル化され、アクションが実行されるときにアドインで使用可能になります。The value is serialized into a string and made available to the add-in when the action is executed. これにより、アクションによって初期化データがアドインに渡されます。This allows the action to pass initialization data to the add-in.

InvokeAddInCommand の例Example InvokeAddInCommand

{
  "@type": "InvokeAddInCommand",
  "name": "Invoke My Add-in",
  "addInId": "527104a1-f1a5-475a-9199-7a968161c870",
  "desktopCommandId": "show ",
  "initializationContext": {
    "property1": "Hello world",
    "property2": 5,
    "property3": true
  }
}

トランザクション アクションTransaction action

重要

Transaction アクションは廃止されました。The Transaction method has been deprecated. 代わりに、ActionRequest 形式を使用して支払い要求メッセージを送信する必要があります。Payment request messages should be sent using the ActionRequest format instead.

Outlook での支払のシナリオを開始します。Initiates an payments in Outlook scenario. 詳細については、「Outlook での支払」を参照してください。For more information see Payments in Outlook.

フィールドField 種類Type 説明Description
name StringString name プロパティは、画面上に表示されるアクションを示すテキストを定義します。The name property defines the text that will be displayed on screen for the action.

動詞をご使用くださいDo use verbs. たとえば、「請求書」の代わりに「請求書の支払」を使用します。For instance, use "Pay invoice" instead of "Invoice".
isPrimaryAction ブール値Boolean 複数のアクションが存在する場合、そのアクションをプライマリ アクションとして強調表示するかを示します。Indicates that the action should be highlighted as the primary action if multiple actions are present. 複数のアクションを含める場合は、これを true に設定することをおすすめします。It is recommended to set this to true for when including multiple actions.
merchantId UUIDUUID マーチャント ID は、Outlook での支払のパートナー ダッシュボードに登録すると提供されます。Your merchant ID provided by registering with the partner dashboard for payments in Outlook.
displayId UUIDUUID 表示 ID は、Outlook での支払のパートナー ダッシュボードに登録すると提供されます。Your display ID provided by registering with the partner dashboard for payments in Outlook.
productContext オブジェクトObject 必須。Required. 開発者は、このフィールドに任意の有効な JSON オブジェクトを指定できます。Developers may specify any valid JSON object in this field. 値は、支払要求と支払完了 Webhook に送信されたペイロードに含まれます。The value is included in the payloads sent to your payment request and payment complete webhooks.

トランザクションの例Example Transaction

{
  "@type" : "Transaction",
  "name" : "Pay invoice",
  "isPrimaryAction" : true,
  "merchantId": "SAMPLE_ID",
  "displayId": "SAMPLE_ID",
  "productContext": {
    "invoiceId": "103032",
    "createdDate" :"12/8/2017",
    "dueDate":"01/31/2019"
  },
  "environment": "ppe"
}

カードの例Card Examples

TrelloTrello

カードが一覧に作成されます。Card is created in a list:

Trello カードの例

このカードがどのように構成されているかを以下に示します。Here is how that card is built:

Trello カードの例のパーツを説明する図

[Add a comment] アクションが展開された状態の同じカードを以下に示します。Here's the same card with the Add a comment action expanded:

展開されたアクション カードが含まれる Trello カード例

[Add a comment] アクションがどのように構成されているかを以下に示します。Here's how the Add a comment action is built:

展開されたアクション カードが含まれる Trello カードの例を説明する図

Trello JSONTrello JSON

{
  "summary": "Card \"Test card\"",
  "themeColor": "0078D7",
  "title": "Card created: \"Name of card\"",
  "sections": [
    {
      "activityTitle": "David Claux",
      "activitySubtitle": "9/13/2016, 3:34pm",
      "activityImage": "https://connectorsdemo.azurewebsites.net/images/MSC12_Oscar_002.jpg",
      "facts": [
        {
          "name": "Board:",
          "value": "Name of board"
        },
        {
          "name": "List:",
          "value": "Name of list"
        },
        {
          "name": "Assigned to:",
          "value": "(none)"
        },
        {
          "name": "Due date:",
          "value": "(none)"
        }
      ],
      "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
    }
  ],
  "potentialAction": [
    {
      "@type": "ActionCard",
      "name": "Set due date",
      "inputs": [
        {
          "@type": "DateInput",
          "id": "dueDate",
          "title": "Select a date"
        }
      ],
      "actions": [
        {
          "@type": "HttpPOST",
          "name": "OK",
          "target": "https://..."
        }
      ]
    },
    {
      "@type": "ActionCard",
      "name": "Move",
      "inputs": [
        {
          "@type": "MultichoiceInput",
          "id": "move",
          "title": "Pick a list",
          "choices": [
            { "display": "List 1", "value": "l1" },
            { "display": "List 2", "value": "l2" }
          ]
        }
      ],
      "actions": [
        {
          "@type": "HttpPOST",
          "name": "OK",
          "target": "https://..."
        }
      ]
    },
    {
      "@type": "ActionCard",
      "name": "Add a comment",
      "inputs": [
        {
          "@type": "TextInput",
          "id": "comment",
          "isMultiline": true,
          "title": "Enter your comment"
        }
      ],
      "actions": [
        {
          "@type": "HttpPOST",
          "name": "OK",
          "target": "https://..."
        }
      ]
    },
    {
      "@type": "OpenUri",
      "name": "View in Trello",
      "targets": [
        { "os": "default", "uri": "https://..." }
      ]
    }
  ]
}

TwitterTwitter

Twitter ダイジェスト カードの例を以下に示します。Here's an example of a Twitter digest card:

Twitter ダイジェスト カードの例

このカードがどのように構成されているかを以下に示します。Here's how that card is built:

Twitter ダイジェスト カードの例を説明する図

Twitter JSONTwitter JSON

{
  "themeColor": "0078D7",
  "sections": [
    {
      "activityTitle": "**Elon Musk**",
      "activitySubtitle": "@elonmusk - 9/12/2016 at 5:33pm",
      "activityImage": "https://pbs.twimg.com/profile_images/782474226020200448/zDo-gAo0.jpg",
      "activityText": "Climate change explained in comic book form by xkcd xkcd.com/1732"
    },
    {
      "activityTitle": "**Mark Knopfler**",
      "activitySubtitle": "@MarkKnopfler - 9/12/2016 at 1:12pm",
      "activityImage": "https://pbs.twimg.com/profile_images/378800000221985528/b2ebfafca6fd7b565fdf3bf4ccdb4dc9.jpeg",
      "activityText": "Mark Knopfler features on B.B King's all-star album of Blues greats, released on this day in 2005..."
    }
  ]
}

操作可能なメールActionable email

メッセージ カードが埋め込まれた HTML メールの本文の例を示します。Here's an example of an HTML email body with an embedded message card.

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="application/ld+json">{
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "originator": "",
    "hideOriginalBody": "true",
    "themeColor": "0072C6",
    "title": "Visit the Outlook Dev Portal",
    "text": "Click **Learn More** to learn more about Actionable Messages!",
    "potentialAction": [
      {
        "@type": "ActionCard",
        "name": "Send Feedback",
        "inputs": [
          {
            "@type": "TextInput",
            "id": "feedback",
            "isMultiline": true,
            "title": "Let us know what you think about Actionable Messages"
          }
        ],
        "actions": [
          {
            "@type": "HttpPOST",
            "name": "Send Feedback",
            "isPrimary": true,
            "target": "http://..."
          }
        ]
      },
      {
        "@type": "OpenUri",
        "name": "Learn More",
        "targets": [
          { "os": "default", "uri": "https://docs.microsoft.com/outlook/actionable-messages" }
        ]
      }
    ]
  }
  </script>
</head>
<body>
Visit the <a href="https://docs.microsoft.com/outlook/actionable-messages">Outlook Dev Portal</a> to learn more about Actionable Messages.
</body>
</html>