方法: コンテキスト データを取得する

getContext関数は、アプリとサインインしているユーザーに関するコンテキスト情報を取得します。 この情報により、アプリはパーソナライズされたエクスペリエンスを提供し、メタデータに基づいて実行時に情報に基づいた意思決定を行うことができます。 getContext関数は、コンテキスト データを取得するために Web プレーヤーと通信します。 getContext関数は軽量であり、メタデータと認証関連のプロパティに重点を置いています。

コンテキスト データを使用する理由

getContext関数によって返されるコンテキスト データは、アプリとユーザーに関する豊富な詳細を提供し、基本的なアプリ機能を超えるシナリオを可能にします。 これらのプロパティが重要な理由は次のとおりです。

  • 強化されたテレメトリとデバッグ: sessionId などのパラメーターを使用すると、アプリ セッションをプラットフォーム テレメトリと関連付けることができるため、問題のトラブルシューティングが容易になります。 IAppContext.appId や IUserContext.userPrincipalName などの識別子にアクセスすると、使用パターンを追跡し、問題をすばやく診断できます。

  • パーソナライズされたエクスペリエンス: ユーザー コンテキスト プロパティを使用すると、より多くのデータ呼び出しを必要とせずに、パーソナル化が簡素化されます。 ユーザー ID に基づいてアプリの動作を調整し、さまざまなロールまたは個人に動的なエクスペリエンスを提供できます。

  • 機能コントロールと条件付きロジック: パラメーターは、機能ゲートまたはフラグとして機能できるため、特定のユーザーまたは環境に対して機能のオンとオフを切り替えることができます。 また、コンテキストに応じて異なる UI 要素またはワークフローを表示するために使用することもできます。

  • キャンバス アプリとの一貫性: これらのパラメーターは、キャンバス アプリで使用できるセッションの詳細と一致しますが、コードで直接使用できるようになり、柔軟性が向上します。

手順

  1. getContext関数をインポートします。

    import { getContext } from '@microsoft/power-apps/app'; 
    
  2. コンテキストを取得

    getContextを非同期関数として呼び出して、コンテキスト オブジェクトを取得します。

    const ctx = await getContext();
    
    // Now you can access these context properties
    const appId = ctx.app.appId;
    const environmentId = ctx.app.environmentId;
    const queryParams = ctx.app.queryParams;
    const dataverseOrgUrl = ctx.app.dataverseOrgUrl;
    const appUrl = ctx.app.appUrl;
    const fullName = ctx.user.fullName;
    const objectId = ctx.user.objectId;
    const systemUserId = ctx.user.systemUserId;
    const tenantId = ctx.user.tenantId;
    const userPrincipalName = ctx.user.userPrincipalName;
    const sessionId = ctx.host.sessionId;
    

現在のユーザーの Dataverse ID を取得する

ctx.user.systemUserIdを使用して、別のクエリを使用せずに、アプリのリンクされた Dataverse 環境で現在のユーザーのsystemuser行の ID を取得します。 この値は、Microsoft Entra IDでユーザーを識別するctx.user.objectIdとは異なります。 ユーザーの Dataverse 行を参照する必要がある場合は、 systemUserId を使用します。

API 応答

取得したコンテキストは、IContext インターフェイスを実装しています。

IContext

次の表では、 IContext インターフェイスで使用できるプロパティについて説明します。

プロパティ タイプ 説明
app IAppContext アプリのコンテキスト
user IUserContext ユーザーのコンテキスト
host IHostContext ホストのコンテキスト

IAppContext

次の表では、 IAppContext インターフェイスで使用できるプロパティについて説明します。

プロパティ タイプ 説明
appId 文字列 再生されているアプリの ID
environmentId 文字列 アプリが存在する環境の ID
queryParams Record<string、string> URL に追加されたクエリ パラメーター
dataverseOrgUrl 文字列 アプリが存在する環境のデータバース URL
appUrl 文字列 アプリの URL。

ユーザーコンテキスト

次の表では、 IUserContext インターフェイスで使用できるプロパティについて説明します。

プロパティ タイプ 説明
fullName 文字列 アプリをプレイしているユーザーの完全な名前
objectId 文字列 アプリをプレイしているユーザーのMicrosoft Entra オブジェクト ID。
systemUserId string (省略可能) リンクされた Dataverse 環境の現在のユーザーの systemuser レコードの ID。 このプロパティは省略することも、利用できない場合は空にすることもできます。
tenantId 文字列 アプリが存在するテナントの ID
userPrincipalName 文字列 アプリをプレイしているユーザーのユーザー プリンシパル名 (UPN)

IHostContext

次の表では、 IHostContext インターフェイスで使用できるプロパティについて説明します。

プロパティ タイプ 説明
sessionId 文字列 現在のセッションの ID。 この値は、アプリを開くたびに変更されます