レポート ビジュアルを埋め込む
先端
Power BI Embedded Analytics Playgroundの「Api を調べる」セクションで、レポートビジュアルを埋め込んだり、クライアント API を試してみてください。
この記事では、アプリケーションにビジュアルを埋め込む手順について説明します。 Power BIの
ビジュアルを埋め込む方法
Power BI コンテンツをアプリに埋め込む場合は、構成オブジェクトを使用して埋め込むコンテンツを定義し、コンテンツの設定を指定します。 次に、そのオブジェクトを API に渡します。
ビジュアルを埋め込む場合は、IVisualLoadConfiguration
型の構成オブジェクトを使用します。
interface IVisualLoadConfiguration {
accessToken?: string;
embedUrl?: string;
id?: string;
pageName: string;
tokenType?: models.TokenType;
type: string;
visualName: string;
}
このインターフェイスには、次のプロパティが含まれています。
accessToken
- 埋め込む Power BI データへのアクセスを許可するトークン。 アクセス トークンの詳細については、「 さまざまな埋め込みソリューションについて理解する」を参照してください。embedUrl
- 埋め込むビジュアルを含むレポートの URL。 この URL は、埋め込みビジュアルを含む HTMLiframe
要素のソースになります。 具体的には、API によって、iframe
のsrc
属性に URL が割り当てられます。 Report API を使用して、この URL を取得できます。 2 つの例を次に示します。- レポート - グループ でレポートを取得する
- レポート - グループ でレポートを取得する
id
- 埋め込むビジュアルを含む Power BI レポートの ID。pageName
- 埋め込むビジュアルを含むページの名前。 Report getPages メソッドを使用して、レポート内のページを取得できます。tokenType
- 埋め込む Power BI データへのアクセスを提供するトークンの種類。- 組織用に埋め込む場合 (ユーザーがデータを所有している) 場合は、
models.TokenType.Aad
を使用します。 - 顧客用に埋め込む場合 (アプリがデータを所有している) 場合は、
models.TokenType.Embed
を使用します。
詳細については、「さまざまな埋め込みソリューション を理解する」を参照してください。
- 組織用に埋め込む場合 (ユーザーがデータを所有している) 場合は、
type
- 埋め込むコンテンツの種類。 ビジュアルには'visual'
を使用します。visualName
- 埋め込むビジュアルの名前。 Page getVisuals メソッドを使用して、ページ内のビジュアルを取得できます。
例
次の例は、1 つのビジュアルを埋め込む方法を示しています。
// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
accessToken: anAccessToken,
embedUrl: anEmbedUrl,
id: aReportId,
pageName: aPageName,
tokenType: aTokenType,
type: 'visual',
visualName: aVisualName
};
// Get a reference to the HTML element that contains the embedded report.
let embedContainer = $('#embedContainer')[0];
// Embed the visual.
let visual = powerbi.embed(embedContainer, embedConfiguration);
フィルター
既定では、updateFilters
API は、1 つのレポート ビジュアルを埋め込むときにビジュアル レベル フィルターを適用します。
これにより、レポート レベルで適用されるため、埋め込み構成オブジェクトに適用されたフィルターとの競合が発生する可能性があります。
この問題を解決するには、API でフィルター レベルを設定します。
await visual.updateFilters(FiltersOperations.Add, filters, FiltersLevel.Report);
詳細については、コントロール レポート フィルターのフィルターに関するページを参照してください。