次の方法で共有


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

アダプティブ カードのユニバーサル アクションは、Teams と Outlook の両方にアダプティブ カード ベースのシナリオを実装する方法を提供します。 このドキュメントでは、次のトピックについて説明します。

アダプティブ カードのユニバーサル アクションを Teams で活用するためのクイック スタート ガイド

  1. Action.Submit のすべてのインスタンスを Action.Execute に置き換えて、Teams の既存のシナリオを更新します。

  2. 自動更新モデルを活用したい場合や、シナリオにユーザー固有のビューが必要な場合は、アダプティブ カードに refresh 句を追加します。

    注:

    userIds プロパティを指定して、自動更新を取得するユーザーを特定します。

  3. ボットの中で adaptiveCard/action の起動要求を処理します。

  4. 起動要求のコンテキストを利用して、ユーザー向けに作成されたカードを返信します。

    注:

    ボットが Action.Execute を処理した結果、新しいカードを返す場合はいつでも、その応答は応答の形式に準拠している必要があります。

アダプティブ カードのユニバーサル アクション向けスキーマ

アダプティブ カードのユニバーサル アクションは、アダプティブ カード スキーマ バージョン 1.5 で導入されています。 アダプティブ カードを効果的に使用するには、アダプティブ カードの version プロパティを 1.5 に設定する必要があります。

注:

version プロパティを 1.5 に設定すると、アダプティブ カードは、アダプティブ カードのユニバーサル アクションをサポートしていないため、Outlook や Teams などのプラットフォームやアプリケーションの古いクライアントと互換性がありません。

カード バージョンを 1.5 未満に設定し、プロパティとAction.Executerefresh、またはその両方を使用すると、次の処理が実行されます。

クライアント 動作
Teams カードが作動しなくなります。 カードは更新されず、 Action.Execute は Teams クライアントのバージョンによってはレンダリングされません。 Teams で最大限の互換性を確保するために、フォールバック プロパティに Action.Submit を含む Action.Execute を定義します。

以前のバージョンのクライアントをサポートする方法の詳細については、「下位換機能」を参照してください。

Action.Execute

アダプティブ カードの作成では、Action.SubmitAction.HttpAction.Execute に置き換えます。 Action.Execute のスキーマは Action.Submit のスキーマと類似しています。

詳細については、「Action.Execute のスキーマとプロパティ」を参照してください。

モデルのリフレッシュを使用して、アダプティブ カードが自動的に更新されるようになりました。

モデルのリフレッシュ

アダプティブ カードを自動的に更新するには、refresh プロパティを定義し、タイプ Action.Execute のアクションと userIds 配列を埋め込みます。

詳細については、「スキーマとプロパティの更新」を参照してください。

リフレッシュでのユーザー ID

リフレッシュでの UserIds の機能は以下のとおりです。

  • UserIds は、アダプティブ カードの refresh プロパティの一部であるユーザー MRI の配列です。

  • userIds リスト プロパティがカードの更新セクションでuserIds: []として指定されている場合、カードは自動的に更新されません。 代わりに、Teams Web クライアントまたはデスクトップのトリプル ドット メニューと Teams モバイルの長押しコンテキスト メニュー (Android または iOS) に更新カード オプションがユーザーに表示され、カードを手動で更新します。 または、シナリオに Teams グループ チャットまたはチャネルで <=60 メンバーが含まれる場合に備えて、更新プロパティのuserIdsをスキップすることもできます。 Teams クライアントは、グループまたはチャネルに <=60 ユーザーがある場合、すべてのユーザーの更新呼び出しを自動的に呼び出します。

  • UserIds プロパティが追加されたのは、Teams チャネルには多数のメンバーが含まれる場合があるためです。 すべてのメンバーが同時にチャネルを視聴している場合、無条件に自動更新を行うと、ボットへの同時呼び出しが多くなります。 userIds プロパティを常に含める必要があり、最大 60 人のユーザー MRI で自動更新を行うべきユーザーを特定する必要があります。

  • Teams 会話メンバーのユーザー MRI をフェッチできます。 アダプティブ カードの更新セクションで userIds リストを追加する方法の詳細については、「 名簿またはユーザー プロファイルをフェッチする」を参照してください。

次の例を使用して、個人用チャット、グループ チャット、またはチャネルのユーザー MRI を取得できます。

  1. TurnContext の使用

    userMRI= turnContext.Activity.From.Id

  2. GetMemberAsync メソッドの使用

    var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);var userMRI = member.Id;

  • サンプルの Teams ユーザー MRI は 29:1bSnHZ7Js2STWrgk6ScEErLk1Lp2zQuD5H2qQ960rtvstKp8tKLl-3r8b6DoW0QxZimuTxk_kupZ1DBMpvIQQUAZL-PNj0EORDvRZXy8kvWk です

注:

Outlook では userIds プロパティは無視され、refresh プロパティは常に自動的に有効化されます。 Outlook では、ユーザーがカードを表示する時間が異なるため、規模の問題はありません。

次の手順では、adaptiveCard/action の起動アクティビティを使用して、Action.Execute が実行された後にどのような要求を行う必要があるか把握します。

adaptiveCard/action 起動アクティビティ

クライアントで Action.Execute が実行されると、新しい種類の起動アクティビティ adaptiveCard/action がボットに作成されます。

詳細については、「一般的な adaptiveCard/action 起動アクティビティの要求形式とプロパティ」を参照してください。

詳細については、「サポートされた応答の種類を使用した一般的な adaptiveCard/action 起動アクティビティの応答形式とプロパティ」を参照してください。

次に、異なるプラットフォームの以前のバージョンのクライアントに下位互換機能を適用し、アダプティブ カードの互換性を持たせることができます。

下位互換機能

アダプティブ カードのユニバーサル アクションでは、以前のバージョンの Outlook や Teams との下位互換機能を実現するためのプロパティを設定することができます。

Teams

アダプティブ カードの以前のバージョンの Teams との下位互換機能を確保するためには、fallback プロパティを含め、その値を Action.Submit に設定する必要があります。 また、ボット コードは、Action.ExecuteAction.Submit の両方を処理する必要があります。

詳細については、「Teams での下位互換機能」を参照してください。

コード サンプル

サンプルの名前 説明 .NET Node.js マニフェスト
Teams ケータリング ボット このサンプルは、アダプティブ カードを使用して食品の注文を受け入れるボットを示しています。 表示 該当なし 該当なし
シーケンシャル ワークフロー アダプティブ カード このサンプルでは、ボットでのシーケンシャル ワークフロー、ユーザー固有のビュー、および現在のアダプティブ カードの実装を示します。 表示 表示 表示

関連項目