ユーザーが開いたときにアクション可能なメッセージを更新する
重要
グローバル スコープを持つ新しいアクション可能メッセージ プロバイダーのオンボードは、サービスのアップグレードにより、2024 年 6 月 30 日まで一時的に一時停止されます。 既存 のグローバル スコープ プロバイダーと 組織 および テスト スコープ プロバイダーのオンボードは影響を受けません。 詳細については、「 アクション可能なメッセージについてよく寄せられる質問」を参照してください。
アクション可能なメッセージを使用すると、ユーザーは、多くの場合、カードに表示されるデータに基づいて、電子メール メッセージに対して迅速なアクションを実行できます。 ただし、アクション可能なメッセージが送信された後にデータが変更されることがあります。 たとえば、サービスから複数の承認者に対して、要求の承認または拒否を求めるアクション可能なメッセージが送信される場合があります。 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.Http
、 autoInvokeAction
他 Action.Http
のアクションとまったく同じように動作します。 このアクションのエンドポイントの実装の詳細については、「 Web API の実装」を参照してください。
の autoInvokeAction
エンドポイントは、次の追加要件も満たす必要があります。
- 要求は 2 秒以内に返す必要があります。
- 時間がかかる要求はクライアントによって無視され、元のカードは引き続き表示されます。 メッセージは引き続きサーバー上で更新されます。
- 成功した応答には、値
true
をCARD-UPDATE-IN-BODY
持つヘッダーとアダプティブ カード JSON ペイロードを含める必要があります。
成功すると、返されたアダプティブ カードは、電子メール メッセージ内の既存のカードを完全に置き換えます。 URL からエラーが返されたり、タイムアウトしたりした場合、既存のカードは引き続き表示されます。
承認シナリオの例
休暇申請ツールによって生成され、従業員の上司に送信される休暇要求カード例を考えてみましょう。
ヒント
JSON にアクセスし、このカードサンプルを変更するには、[アクション可能なメッセージ] Designerの [休暇の承認] サンプルを選択します。
カードには、要求された日付や従業員が残っている休暇の量など、マネージャーが決定を下すのに役立つ情報が含まれています。 この情報は、メッセージが生成されて送信されたときに正確でした。 ただし、マネージャーがメールを確認する前にデータが変更される可能性があります。 たとえば、従業員は休暇申請ツールで要求を編集して、要求された日付を変更できます。
ツールによって生成されたアクション可能なメッセージにプロパティを含autoInvokeAction
めることで、元のデータを含むカードは、マネージャーが開いたときに新しいカードに新しいデータに置き換えられます。 で autoInvokeAction
指定された URL は、要求された休暇日の新しい値を持つ同じ JSON ペイロードを返します。