アダプティブ カードのユニバーサル アクション

アダプティブ カードのユニバーサル アクションは開発者からのフィードバックから進化しました。アダプティブ カードのレイアウトとレンダリングはユニバーサルでしたが、アクション処理はそうではありませんでした。 開発者が同じカードを別の場所に送信する場合でも、アクションを異なる方法で処理する必要があります。

アダプティブ カードのユニバーサル アクションは、アクションを処理するための共通バックエンドとしてボットを提供し、 Action.ExecuteTeams や Outlook などのアプリ間で機能する新しいアクションの種類を導入します。

このドキュメントは、ユニバーサル アクション モデルを使用して、プラットフォームやアプリケーション間でアダプティブ カードを操作するユーザー エクスペリエンスを強化する方法を理解するのに役立ちます。

アダプティブ カードのユニバーサル アクションを使用してユーザー エクスペリエンスを強化する

アダプティブ カードのユニバーサル アクションでは、次のシナリオを有効にすることで、ユーザー エクスペリエンスが向上します。

ユニバーサル アクション

アダプティブ カードのユニバーサル アクションの前は、次のように異なるホストによって異なるアクション モデルが提供されていました。

  • Teams またはボットは、実際の通信モデルを基になるチャネルに延期するアプローチである Action.Submit を使用しました。
  • Outlook は Action.Http を使用して、アダプティブ カード ペイロードで明示的に指定されたバックエンド サービスと通信しました。

次の図は、現在の不整合なアクション モデルを示しています。

不整合なアクション モデル

アダプティブ カードのユニバーサル アクションでは、Action.Execute を使用して、さまざまなプラットフォームでのアクション処理を行うことができます。

Action.Execute は Teams や Outlook を含むすべてのハブで機能し、 は の Action.Submit代わりではありません。 たとえば、外部システムがアクションを実行し、アクションの結果を メッセージング拡張機能を使用して会話に返送する必要がある場合は、 Action.Execute サポートされていません。

ヒーローカードやサムネイル カードなどのリンク解除カード の場合は、 を呼び出す Action.Submit必要があります。

さらに、アダプティブ カードは、トリガーされた呼び出し要求の Action.Execute 応答として返すことができます。

次の図は、新しいユニバーサル アクション モデルを示しています。

アダプティブ カードの新しいユニバーサル アクション

Teams と Outlook の両方に同じカードを送信し、基になるボットを使用して相互に同期を維持できるようになりました。 いずれかのプラットフォームで実行されたすべてのアクションは、この 一度のビルドでどこででもデプロイする (アダプティブ カードのユニバーサル アクション) モデルを使用して、もう一方のプラットフォームに反映されます。

次の図は、Teams と Outlook の両方のアダプティブ カードのユニバーサル アクションを示しています。

ユーザー固有のビュー

現在、Teams チャットまたはチャネルのすべてのユーザーは、アダプティブ カードでまったく同じビューとボタンアクションを表示します。 ただし、特定のシナリオでは、特定のユーザーが異なる行動を取り、同じチャットまたはチャネル内の異なる情報にアクセスできるようにする必要があります。

たとえば、チャットまたはチャネルでインシデント レポート カードを送信する場合、インシデントが割り当てられているユーザーにのみ、[解決] ボタンが表示される必要があります。 一方、インシデント作成者は[編集] ボタンを表示する必要があり、他のすべてのユーザーはインシデントの詳細のみを表示できる必要があります。 これは、 refresh プロパティによって有効になっているユーザー固有のビューによって実現されます。

次の図は、チャット内のさまざまなユーザーが要件に基づいて異なるアクションを表示するチケットメッセージ拡張機能 (ME) の例を示しています。

詳細については、「ユーザー固有のビューのサンプル」を参照してください。

シーケンシャル ワークフローのサポート

シーケンシャル ワークフローのサポートにより、ユーザーは異なるカードを個別に送信することなく、一連のワークフローを進めることができます。 これは、アクションに応答してアダプティブ カードを返す Action.Execute の機能によって実現されます。 また、チャットまたはチャネル内のすべてのユーザーは、チャット内の他のユーザーのカードを変更することなく、ワークフローを進めることができます。

次の図は、食品注文ボットの例を示しています。

シーケンシャル ワークフロー

次の図は、チャットまたはチャネル内のさまざまなユーザーのさまざまな状態を示しています。

ケータリング ボットの状態

詳細については、「シーケンシャル ワークフローのサンプル」を参照してください。

最新のビュー

自動的に更新されるアダプティブ カードを作成できます。 たとえば、ユーザーから送信された承認要求を指定できます。 承認後、カードには、要求の承認時刻と要求を承認したユーザーに関する詳細が自動的に表示される必要があります。 更新モデルを使用すると、このような最新のビューを提供できます。 次の図は、複数ステップの承認フローと、さまざまなユーザーのビューがどのように表示されるかを示しています。

最新のユーザー固有ビュー

詳細については、「最新のビューのサンプル」を参照してください。

これで、新しいユニバーサル アクション モデルでアダプティブ カードを変換して、独自の強化されたユーザー エクスペリエンスを提供する方法を理解できるようになりました。

アダプティブ カードと新しいユニバーサル アクション モデル

アダプティブ カードは、テキストやグラフィックスなどのコンテンツと、ユーザーが実行できるアクションの組み合わせです。 詳細については「アダプティブ カード」を参照してください。 アダプティブ カードの新しいユニバーサル アクションを使用すると、プラットフォームとアプリケーション間でアダプティブ カード アクションを一般的に処理できます。 詳細については、「ユニバーサル アクション モデル」を参照してください。

クイック スタート ガイドを使用してシナリオを更新し、ユニバーサル アクションを活用することから始めることができます。

次の手順

関連項目