ユーザーが開いたときにアクション可能なメッセージを更新する

アクション可能なメッセージを使用すると、ユーザーは、多くの場合、カードに表示されるデータに基づいて、電子メール メッセージに対して迅速なアクションを実行できます。 ただし、アクション可能なメッセージが送信された後にデータが変更されることがあります。 たとえば、サービスから複数の承認者に対して、要求の承認または拒否を求めるアクション可能なメッセージが送信される場合があります。 1 人の承認者が要求を承認しますが、もう一方の承認者のメールボックス内の実用的なメッセージは引き続き承認を求めます。 これで、 autoInvokeAction アクション可能なメッセージの プロパティを使用して、ユーザーが Outlook で電子メールを開いたときに、最新のアダプティブ カード ペイロードと最新の情報を取得するための HTTP エンドポイントを提供できます。

重要

ユーザーが開いたときにアクション可能なメッセージを更新すると、アクション可能なメッセージ ソリューションのパフォーマンスに直接影響します。 更新されたカードを提供するサービスが、「 Web API の実装」で説明されているパフォーマンス要件を満たすことが重要です。

登録要件

開発者ダッシュボードテスト ユーザーまたは組織スコープで登録されているアクション可能なメッセージ サービスは、承認されるとすぐにこの機能を使用できます。 サービスが グローバル スコープに登録されている場合は、この機能を有効にするためにお問い合わせください onboardoam@microsoft.com

autoInvokeAction の使用

この機能を使用するには、カードで アダプティブ カード 形式を使用する必要があります。 autoInvokeAction プロパティは、AdaptiveCard 型に追加された Outlook 固有のプロパティです。 このプロパティの値は Action.Http アクションで、 が にPOST設定されていますmethod。 プロパティは url 、更新されたアダプティブ カード ペイロードを提供するサービス内の Web API エンドポイントを指定します。

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [...],
  "actions": [...],
  "autoInvokeAction": {
    "method": "POST",
    "url": "https://actionablemessages.contoso.com/api/getupdatedcard",
    "body": "",
    "type": "Action.Http"
  }
}

初期アダプティブ カードの作成

autoInvokeAction を使用する場合、メッセージに含まれる最初のカードはエンド ユーザーにとって価値があり、理想的には実用的であることが非常に重要です。 が autoInvokeAction 失敗するか、ネットワークの状態によって速度が低下する可能性があります。この場合、最初のカードがすべてエンド ユーザーに表示されます。

  • だけで空の初期カードをautoInvokeAction送信しないでください。 このようなカードは、アクション可能メッセージ プラットフォームによって拒否されます。
  • ユーザーに待機を求めるプレースホルダーに過ぎない初期カードは送信しないでください
  • ユーザーがメッセージを開くまでに古いデータが表示される可能性がある場合でも、現在の状態の情報を表示する初期カードを送信します

Web API の実装

プロパティで指定されたアクションは Action.HttpautoInvokeActionAction.Http のアクションとまったく同じように動作します。 このアクションのエンドポイントの実装の詳細については、「 Web API の実装」を参照してください。

autoInvokeAction エンドポイントは、次の追加要件も満たす必要があります。

  • 要求は 2 秒以内に返す必要があります
  • 長い時間がかかる要求はクライアントによって無視され、元のカードは引き続き表示されます。 メッセージは引き続きサーバー上で更新されます。
  • 成功した応答には、値trueCARD-UPDATE-IN-BODY持つヘッダーとアダプティブ カード JSON ペイロードが含まれている必要があります。

成功すると、返されたアダプティブ カードは、電子メール メッセージの既存のカードを完全に置き換えます。 URL からエラーが返されたり、タイムアウトしたりした場合、既存のカードは引き続き表示されます。

承認シナリオの例

休暇申請ツールによって生成され、従業員の上司に送信された休暇要求カードの例を考えてみましょう。

ヒント

JSON にアクセスし、このカード サンプルを変更するには、アクション可能なメッセージ デザイナー[休暇の承認] サンプルを選択します。

要求された日付や従業員の残りの休暇残高など、休暇要求を表す実用的なメッセージ。

カードには、要求された日付や従業員が残っている休暇の量など、マネージャーが決定を下すのに役立つ情報が含まれています。 この情報は、メッセージが生成されて送信されたときに正確でした。 ただし、マネージャーがメールを確認する前にデータが変更される可能性があります。 たとえば、従業員は休暇申請ツールで要求を編集して、要求された日付を変更できます。

ツールによって生成されたアクション可能なメッセージにプロパティを含 autoInvokeAction めることにより、元のデータを含むカードは、マネージャーが開いたときに新しいカードに置き換えられます。 で autoInvokeAction 指定された URL は、要求された休暇日の新しい値を持つ同じ JSON ペイロードを返します。

要求された日付の値が更新された休暇要求アクション可能メッセージ。