ユニバーサル アクション モデルの概要

重要

グローバル スコープを持つ新しいアクション可能メッセージ プロバイダーのオンボードは、サービスのアップグレードにより、2024 年 6 月 30 日まで一時的に一時停止されます。 既存 のグローバル スコープ プロバイダーと 組織 および テスト スコープ プロバイダーのオンボードは影響を受けません。 詳細については、「 アクション可能なメッセージについてよく寄せられる質問」を参照してください。

アダプティブ カードはプラットフォームに依存しない UI スニペットであり、軽量の JSON 形式を使用して作成され、アプリやサービスで共有できます。 アダプティブ カードは、ホストの外観に適応するだけでなく、豊富な対話機能も提供します。

アダプティブ カードの人気が高まるにつれて、さまざまなホストがさまざまなアクション モデルをサポートし始め、断片化が発生しました。 この問題を解決するために、Teams、Outlook、アダプティブ カードの各チームは、ホスト間で互換性のある新しいユニバーサル ボット アクション モデルの作成に取り組んだ。 この取り組みにより、次のことが行われます。

  • Outlook (アクション可能メッセージ) と Teams (Bots) の両方にアダプティブ カード ベースのシナリオを実装する方法としてのボットと Bot Framework の一般化
  • Action.Execute(現在はアクション可能メッセージで使用されています) と Action.Submit (現在ボットで使用されている) の両方Action.Httpの代替として使用されます。

Schema

重要

ユニバーサル アクション モデルは、アダプティブ カード スキーマ バージョン 1.4 以降で導入されています。 これらの新機能を使用するには、次の例に示すように、 version アダプティブ カードのプロパティを 1.4 以上に設定する必要があります。

Action.Execute

Outlook 用アダプティブ カードを作成する場合は、 のAction.Http代わりに を使用Action.Executeします。 JSON ペイロードで を使用Action.Executeするアダプティブ カードの例を次に示します。

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "text": "Present a form and submit it back to the originator"
    },
    {
      "type": "Input.Text",
      "id": "firstName",
      "placeholder": "What is your first name?"
    },
    {
      "type": "Input.Text",
      "id": "lastName",
      "placeholder": "What is your last name?"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Submit",
          "verb": "personalDetailsFormSubmit"
        }
      ]
    }
  ]
}

プロパティ

プロパティ 必須 説明
type string はい Action.Execute である必要があります。
動詞 string いいえ 開発者がアクションを識別するために使用できる便利な文字列
data string, object いいえ 入力フィールドが組み合わされる初期データ。 これらは基本的に非表示のプロパティです。
title string いいえ このアクションを表すボタンまたはリンクのラベル。
iconUrl uri いいえ アクションにタイトルと組み合わせて表示するオプションのアイコン。 アダプティブ カード バージョン 1.2 以降のデータ URI をサポート
style ActionStyle いいえ アクションの表示方法、読み上げ方法などに影響するアクションのスタイルを制御します。
フォールバック <action object>, "drop" いいえ カードを表示するクライアントで Action.Execute がサポートされていない場合の対処方法について説明します。
必要 Dictionary<string> いいえ アイテムが対応する最小バージョンで必要とする機能を示す一連のキーと値のペア。 機能がない場合、またはバージョンが不十分な場合は、フォールバックがトリガーされます。

更新メカニズム

と共 Action.Executeに、新しい更新メカニズムがサポートされるようになりました。そのため、表示時に自動的に更新されるアダプティブ カードを作成できるようになりました。 これにより、ユーザーに常に最新のデータが確実に表示されます。 アダプティブ カードが Outlook で自動的に更新されるようにするには、 型を埋め込むプロパティをaction定義refreshしますAction.Execute

プロパティ 必須 説明
action "Action.Execute" はい "Action.Execute"のアクション インスタンスである必要があります。
userIds Array<string> はい Teams で自動更新を有効にする必要があるユーザーのメッセージ リソース識別子 (MRI) の配列。 Teams の場合は、「 更新時のユーザー ID」 を参照して詳細を確認してください。 Outlook では プロパティ userIds は無視され refresh 、プロパティは常に自動的に適用されることに注意してください。

サンプル JSON

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Submit",
      "verb": "personalDetailsCardRefresh"
    },
    "userIds": []
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Present a form and submit it back to the originator"
    },
    {
      "type": "Input.Text",
      "id": "firstName",
      "placeholder": "What is your first name?"
    },
    {
      "type": "Input.Text",
      "id": "lastName",
      "placeholder": "What is your last name?"
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Submit",
          "verb": "personalDetailsFormSubmit",
          "fallback": "Action.Submit"
        }
      ]
    }
  ]
}

下位互換機能

新しいAction.Executeユニバーサル アクション モデルは、アダプティブ カード バージョン 1.4 より下で使用されるアクション モデルからのAction.Http逸脱であり、アクションはアダプティブ カードで明示的な HTTP 呼び出しとしてエンコードされます。 Action.Execute モデルを使用すると、開発者は Outlook と Teams の両方で動作するシナリオを実装できます。 アクション可能なメッセージ シナリオでは、モデルまたは新しいAction.ExecuteモデルをAction.Http使用できますが、両方を使用することはできません。 ユニバーサル Action.Execute モデルを使用するシナリオは、ボットとして実装し、 Outlook アクション可能メッセージ チャネルをサブスクライブする必要があります。

コード サンプル

ドキュメントを確認したら、いくつかの例を試す準備が整います。