Kurz: Vložení obsahu Power BI do aplikace pro národní cloudyTutorial: Embed a Power BI content into your application for national clouds

Naučte se vložit analytický obsah do aplikací obchodních procesů pro národní cloud.Learn how to embed analytical content within your business process applications for the national cloud. Sestavu, řídicí panel nebo dlaždici můžete do webové aplikace vložit pomocí sady .NET SDK Power BI s rozhraním API JavaScriptu Power BI.You can use the Power BI .NET SDK with the Power BI JavaScript API to embed a report, dashboard, or tile, into your web applications.

Power BI také podporuje národní cloudy.Power BI also supports national clouds.

Mezi národní cloudy patří:The different national clouds are:

  • USA: Komunitní cloud státní správy (Government Community Cloud, GCC)U.S. Government Community Cloud (GCC)

  • UU. USA:S. Komunitní cloud státní správy GCC High (Government Community Cloud High)Government Community Cloud High (GCC High)

  • UU. USA:S. Armádní dodavatelé (Military Contractors, DoDCON)Military Contractors (DoDCON)

  • UU. USA:S. Armáda (Military, DoD)Military (DoD)

  • Cloud Power BI pro NěmeckoPower BI for Germany cloud

  • Cloud Power BI pro ČínuPower BI for China cloud

Vložení řídicího panelu

Abyste mohli začít s tímto názorným postupem, potřebujete účet Power BI.To get started with this walkthrough, you need a Power BI account. Pokud nemáte nastavený účet, můžete si podle typu státní správy nebo země zvolit vhodný národní cloud.If you don't have an account set up, then depending on the type of government or country you can choose the right national cloud for you. Můžete si zaregistrovat účet Power BI americké vlády, cloudový účet Power BI pro Německo nebo cloudový účet Power BI pro Čínu.You can sign up for a U. S. government Power BI account, a Power BI for Germany cloud account or a Power BI for China cloud account.

Poznámka

Hledáte informace o vložení řídicího panelu pro svoji organizaci?Looking to embed a dashboard for your organization instead? Podívejte se na článek Integrace řídicího panelu do aplikace pro vlastní organizaci.See, Integrate a dashboard into an app for your organization.

Pokud chcete integrovat řídicí panel do webové aplikace, získejte řídicí panel pomocí rozhraní API služby Power BI a autorizačního přístupového tokenu služby Azure Active Directory (AAD).To integrate a dashboard into a web app, you use the Power BI API, and an Azure Active Directory (AD) authorization access token to get a dashboard. Pak můžete řídicí panel načíst pomocí tokenu pro vložení.Then, you load the dashboard using an embed token. Rozhraní API služby Power BI nabízí programový přístup ke konkrétním prostředkům Power BI.The Power BI API provides programmatic access to specific Power BI resources. Další informace najdete tady: REST API Power BI, sada Power BI .NET SDK a javascriptové rozhraní API Power BI.For more information, see Power BI REST API, [Power BI .NET SDK, and the Power BI JavaScript API.

Stažení ukázkyDownload the sample

V tomto článku vidíte kód použitý v ukázce App Owns Data (Aplikace vlastní data) na GitHubu.This article shows the code used in the App Owns Data sample on GitHub. Pokud chcete postupovat podle tohoto návodu, můžete si ukázku stáhnout.To follow along with this walkthrough, you can download the sample.

Ukázka App Owns Data (Aplikace vlastní data)

  • Komunitní cloud státní správy (Government Community Cloud, GCC):Government Community Cloud (GCC):

    Poznámka

    Vkládání obsahu Power BI z GCC (Government Community Cloud) je možné provádět jen s SKU Microsoft 365.Embedding Power BI content from a Government Community Cloud (GCC), can only be done with a Microsoft 365 SKU. Zákazníci jiných národních cloudů mohou použít SKU Microsoft 365 nebo SKU Azure.Other national cloud customers can use Microsoft 365 or Azure SKUs.

  1. Přepište soubor Cloud.config obsahem souboru GCCCloud.config.Overwrite Cloud.config file with GCCCloud.config content.

  2. V souboru Web.config aktualizujte hodnoty applicationId (ID aplikace nativní aplikace), workspaceId, dále uživatele (váš hlavní uživatel) a heslo.Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in Web.config file.

  3. Následujícím způsobem přidejte parametry GCC do souboru web.config.Add the GCC parameters in the web.config file as follows.

<add key="authorityUrl" value="https://login.microsoftonline.com/common/" />
<add key="resourceUrl" value="https://analysis.usgovcloudapi.net/powerbi/api" />
<add key="apiUrl" value="https://api.powerbigov.us/" />
<add key="embedUrlBase" value="https://app.powerbigov.us" />
  • Armádní dodavatelé (Military Contractors, DoDCON):Military Contractors (DoDCON):
  1. Přepište soubor Cloud.config obsahem souboru TBCloud.config.Overwrite Cloud.config file with TBCloud.config content.

  2. V souboru Web.config aktualizujte hodnoty applicationId (ID aplikace nativní aplikace), workspaceId, dále uživatele (váš hlavní uživatel) a heslo.Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in Web.config file.

  3. Následujícím způsobem přidejte parametry DoDCON do souboru web.config.Add the DoDCON parameters in the web.config file as follows.

<add key="authorityUrl" value="https://login.microsoftonlineS.net/common/" />
<add key="resourceUrl" value="https://high.analysis.usgovcloudapi.net/powerbi/api" />
<add key="apiUrl" value="https://api.high.powerbigov.us/" />
<add key="embedUrlBase" value="https://app.high.powerbigov.us" />
  • Armáda (Military, DoD):Military (DoD):
  1. Přepište soubor Cloud.config obsahem souboru PFCloud.config.Overwrite Cloud.config file with PFCloud.config content.

  2. V souboru Web.config aktualizujte hodnoty applicationId (ID aplikace nativní aplikace), workspaceId, dále uživatele (váš hlavní uživatel) a heslo.Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in Web.config file.

  3. Následujícím způsobem přidejte parametry DoDCON do souboru web.config.Add the DoDCON parameters in the web.config file as follows.

<add key="authorityUrl" value="https://login.microsoftonline.net/common/" />
<add key="resourceUrl" value="https://mil.analysis.usgovcloudapi.net/powerbi/api" />
<add key="apiUrl" value="https://api.mil.powerbigov.us/" />
<add key="embedUrlBase" value="https://app.mil.powerbigov.us" />
  • Parametry cloudu Power BI pro NěmeckoPower BI for Germany cloud parameters
  1. Přepište soubor Cloud.config obsahem pro cloud Power BI pro Německo.Overwrite Cloud.config file with Power BI for Germany cloud content.

  2. V souboru Web.config aktualizujte hodnoty applicationId (ID aplikace nativní aplikace), workspaceId, dále uživatele (váš hlavní uživatel) a heslo.Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in Web.config file.

  3. Následujícím způsobem přidejte parametry cloudu Power BI pro Německo do souboru web.config.Add the Power BI for Germany cloud parameters in the web.config file as follows.

<add key="authorityUrl" value="https://login.microsoftonline.de/common/" />
<add key="resourceUrl" value="https://analysis.cloudapi.de/powerbi/api" />
<add key="apiUrl" value="https://api.powerbi.de/" />
<add key="embedUrlBase" value="https://app.powerbi.de" />
  • Parametry cloudu Power BI pro ČínuPower BI for China cloud parameters
  1. Přepište soubor Cloud.config obsahem cloudu Power BI pro Čínu.Overwrite Cloud.config file with Power BI for China cloud content.

  2. V souboru Web.config aktualizujte hodnoty applicationId (ID aplikace nativní aplikace), workspaceId, dále uživatele (váš hlavní uživatel) a heslo.Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in Web.config file.

  3. Přidejte do souboru web.config následující parametry cloudu Power BI pro Čínu.Add the Power BI for China cloud parameters in the web.config file as follows.

<add key="authorityUrl" value="https://login.chinacloudapi.cn/common/" />
<add key="resourceUrl" value="https://analysis.chinacloudapi.cn/powerbi/api" />
<add key="apiUrl" value="https://api.powerbi.cn/" />
<add key="embedUrlBase" value="https://app.powerbi.cn" />

Krok 1 – registrace aplikace v Azure ADStep 1 - register an app in Azure AD

Zaregistrujte aplikaci v Azure AD, abyste mohli volat rozhraní REST API.Register your application with Azure AD to make REST API calls. Další informace najdete v tématu věnovaném registraci aplikace Azure AD pro vložení obsahu Power BI.For more information, see Register an Azure AD app to embed Power BI content. Vzhledem k různým umístěním národních cloudů se k registraci aplikace používají odlišné adresy URL.Since there are different national cloud affiliations, there are distinct URLs to register your application.

  • Komunitní cloud státní správy (Government Community Cloud, GCC) – https://app.powerbigov.us/appsGovernment Community Cloud (GCC) - https://app.powerbigov.us/apps

  • Armádní dodavatelé (Military Contractors, DoDCON) – https://app.high.powerbigov.us/appsMilitary Contractors (DoDCON) - https://app.high.powerbigov.us/apps

  • Armáda (Military, DoD) – https://app.mil.powerbigov.us/appsMilitary (DoD) - https://app.mil.powerbigov.us/apps

  • Cloud Power BI pro Německo – https://app.powerbi.de/appsPower BI for Germany cloud - https://app.powerbi.de/apps

  • Cloud Power BI pro Čínu – https://app.powerbi.cn/appsPower BI for China cloud - https://app.powerbi.cn/apps

Pokud jste si stáhli ukázku vložení pro zákazníka, použijete hodnotu applicationId, kterou jste získali, aby bylo možné ukázku ověřit v Azure AD.If you downloaded the Embedding for your customer sample, you would use the applicationId you get, so that the sample can authenticate to Azure AD. Ukázku můžete nakonfigurovat tak, že změníte hodnotu applicationId v souboru web.config.To configure the sample, change the applicationId in the web.config file.

Krok 2 – získání přístupového tokenu z Azure ADStep 2 - get an access token from Azure AD

K volání rozhraní Power BI REST API z aplikace potřebujete přístupový token z Azure AD.Within your application, you need to get an access token, from Azure AD, before you can make calls to the Power BI REST API. Další informace najdete v tématu věnovaném ověření uživatelů a získání přístupového tokenu Azure AD pro aplikaci Power BI.For more information, see Authenticate users and get an Azure AD access token for your Power BI app. Vzhledem k různým přidružením národních cloudů se k získání přístupového tokenu pro aplikaci používají odlišné adresy URL.Since there are different national cloud affiliations, there are distinct URLs to get an access token for your application.

  • Komunitní cloud státní správy (Government Community Cloud, GCC) – https://login.microsoftonline.comGovernment Community Cloud (GCC) - https://login.microsoftonline.com

  • Armádní dodavatelé (Military Contractors, DoDCON) – https://login.microsoftonline.usMilitary Contractors (DoDCON) - https://login.microsoftonline.us

  • Armáda (Military, DoD) – https://login.microsoftonline.usMilitary (DoD) - https://login.microsoftonline.us

  • Cloud Power BI pro Německo – https://login.microsoftonline.dePower BI for Germany cloud - https://login.microsoftonline.de

  • Cloud Power BI pro Čínu – https://login.chinacloudapi.cnPower BI for China cloud - https://login.chinacloudapi.cn

Na příklady těchto přístupových tokenů se můžete podívat u jednotlivých úkolů s položkami obsahu v souboru Controllers\HomeController.cs.You can see examples of these access tokens within each content item task in the Controllers\HomeController.cs file.

Krok 3 – získání položky obsahuStep 3 - get a content item

Pokud chcete vložit obsah Power BI, musíte udělat několik věcí, abyste měli jistotu, že se vloží správně.To embed your Power BI content, you need to do a couple of things to make sure it embeds correctly. Všechny tyto kroky se sice dají provést přímo v rozhraní REST API, ale ukázková aplikace a příklady, které zde uvádíme, používají .NET SDK.While all of these steps can be done with the REST API directly, the sample application and the examples here use the .NET SDK.

Vytvoření klienta Power BI pomocí přístupového tokenuCreate the Power BI Client with your access token

S přístupovým tokenem můžete vytvořit objekt klienta Power BI, který vám umožní aktivně používat rozhraní API Power BI.With your access token, you want to create your Power BI client object, which allows you to interact with the Power BI APIs. Objekt klienta Power BI vytvoříte zabalením přístupového tokenu do objektu Microsoft.Rest.TokenCredentials.You create your Power BI client object by wrapping the AccessToken with a Microsoft.Rest.TokenCredentials object.

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;
using Microsoft.PowerBI.Api.V2;

var tokenCredentials = new TokenCredentials(authenticationResult.AccessToken, "Bearer");

// Create a Power BI Client object. This is used to call the Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
    // Your code to embed items.
}

Získání položky obsahu, kterou chcete vložitGet the content item you want to embed

Pomocí objektu klienta Power BI načtěte odkaz na položku, kterou chcete vložit.Use the Power BI client object to retrieve a reference to the item you want to embed. Můžete vkládat řídicí panely, dlaždice nebo sestavy.You can embed dashboards, tiles, or reports. Tady je příklad toho, jak z daného pracovního prostoru načíst první řídicí panel, dlaždici nebo sestavu.Here is an example of how to retrieve the first dashboard, tile, or report from a given workspace.

Ukázka je dostupná v souboru Controllers\HomeController.cs v ukázce App Owns Data (Aplikace vlastní data).A sample is available within Controllers\HomeController.cs of the App Owns Data sample.

SestavyReports

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// You need to provide the workspaceId where the dashboard resides.
ODataResponseListReport reports = client.Reports.GetReportsInGroupAsync(workspaceId);

// Get the first report in the group.
Report report = reports.Value.FirstOrDefault();

Řídicí panelyDashboards

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// You need to provide the workspaceId where the dashboard resides.
ODataResponseListDashboard dashboards = client.Dashboards.GetDashboardsInGroup(workspaceId);

// Get the first report in the group.
Dashboard dashboard = dashboards.Value.FirstOrDefault();

DlaždiceTiles

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// To retrieve the tile, you first need to retrieve the dashboard.

// You need to provide the workspaceId where the dashboard resides.
ODataResponseListDashboard dashboards = client.Dashboards.GetDashboardsInGroup(workspaceId);

// Get the first report in the group.
Dashboard dashboard = dashboards.Value.FirstOrDefault();

// Get a list of tiles from a specific dashboard
ODataResponseListTile tiles = client.Dashboards.GetTilesInGroup(workspaceId, dashboard.Id);

// Get the first tile in the group.
Tile tile = tiles.Value.FirstOrDefault();

Vytvoření tokenu pro vloženíCreate the embed token

Token pro vložení můžete vygenerovat pomocí javascriptového rozhraní API.Using the JavaScript API, you can generate an embed token. Token pro vložení je specifický pro vkládanou položku.The embed token is specific to the item you're embedding. Pokaždé, když budete vkládat něco z obsahu Power BI, budete muset vytvořit nový token pro vložení.Anytime you embed a piece of Power BI content, you need to create a new embed token for it. Další informace, včetně toho, jakou hodnotu accessLevel použít, najdete v článku o tokenu pro vložení.For more information, including which accessLevel to use, see Embed Token.

Důležité

Vzhledem k tomu, že vložené tokeny jsou určené pouze pro vývojářské testování, počet vložených toků, které může hlavní účet Power BI vygenerovat, je omezený.Because embed tokens are intended for developer testing only, the number of embed tokens a Power BI master account can generate is limited. Pro produkční scénáře vkládání se musí zakoupit kapacita.A capacity must be purchased for production embedding scenarios. Když si nakoupíte kapacitu, není generování vložených tokenů nijak omezené.There is no limit to embed token generation when a capacity is purchased.

Ukázka je dostupná v souboru Controllers\HomeController.cs v ukázce vložení pro vlastní organizaci.A sample is available within Controllers\HomeController.cs of the Embedding for your organization sample.

Vytvoří se třída pro EmbedConfig a TileEmbedConfig.A class is created for EmbedConfig and TileEmbedConfig. Ukázka je dostupná v souborech Models\EmbedConfig.cs a Models\TileEmbedConfig.cs.A sample is available within Models\EmbedConfig.cs and Models\TileEmbedConfig.cs.

SestavyReports

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// Generate Embed Token.
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
EmbedToken tokenResponse = client.Reports.GenerateTokenInGroup(workspaceId, report.Id, generateTokenRequestParameters);

// Generate Embed Configuration.
var embedConfig = new EmbedConfig()
{
    EmbedToken = tokenResponse,
    EmbedUrl = report.EmbedUrl,
    Id = report.Id
};

Řídicí panelyDashboards

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// Generate Embed Token.
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
EmbedToken tokenResponse = client.Dashboards.GenerateTokenInGroup(workspaceId, dashboard.Id, generateTokenRequestParameters);

// Generate Embed Configuration.
var embedConfig = new EmbedConfig()
{
    EmbedToken = tokenResponse,
    EmbedUrl = dashboard.EmbedUrl,
    Id = dashboard.Id
};

DlaždiceTiles

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// Generate Embed Token for a tile.
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
EmbedToken tokenResponse = client.Tiles.GenerateTokenInGroup(workspaceId, dashboard.Id, tile.Id, generateTokenRequestParameters);

// Generate Embed Configuration.
var embedConfig = new TileEmbedConfig()
{
    EmbedToken = tokenResponse,
    EmbedUrl = tile.EmbedUrl,
    Id = tile.Id,
    dashboardId = dashboard.Id
};

Krok 4 – načtení položky pomocí JavaScriptuStep 4 - load an item using JavaScript

Pomocí JavaScriptu můžete načíst řídicí panel do elementu div na své webové stránce.You can use JavaScript to load a dashboard into a div element on your web page. Ukázka používá model EmbedConfig/TileEmbedConfig společně se zobrazeními pro řídicí panel, dlaždici nebo sestavu.The sample uses an EmbedConfig/TileEmbedConfig model along with views for a dashboard, tile, or report. Jako úplnou ukázku použití javascriptového rozhraní API můžete použít ukázku pro Microsoft Power BI Embedded.For a full sample of using the JavaScript API, you can use the Microsoft Power BI Embedded Sample.

Ukázka aplikace je dostupná v rámci ukázky vložení pro vlastní organizaci.An application sample is available within the Embedding for your organization sample.

Views\Home\EmbedDashboard.cshtmlViews\Home\EmbedDashboard.cshtml

<script src="~/scripts/powerbi.js"></script>
<div id="dashboardContainer"></div>
<script>
    // Read embed application token from Model
    var accessToken = "@Model.EmbedToken.Token";

    // Read embed URL from Model
    var embedUrl = "@Html.Raw(Model.EmbedUrl)";

    // Read dashboard Id from Model
    var embedDashboardId = "@Model.Id";

    // Get models. models contains enums that can be used.
    var models = window['powerbi-client'].models;

    // Embed configuration used to describe the what and how to embed.
    // This object is used when calling powerbi.embed.
    // This also includes settings and options such as filters.
    // You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
    var config = {
        type: 'dashboard',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedDashboardId
    };

    // Get a reference to the embedded dashboard HTML element
    var dashboardContainer = $('#dashboardContainer')[0];

    // Embed the dashboard and display it within the div container.
    var dashboard = powerbi.embed(dashboardContainer, config);
</script>

Views\Home\EmbedTile.cshtmlViews\Home\EmbedTile.cshtml

<script src="~/scripts/powerbi.js"></script>
<div id="tileContainer"></div>
<script>
    // Read embed application token from Model
    var accessToken = "@Model.EmbedToken.Token";

    // Read embed URL from Model
    var embedUrl = "@Html.Raw(Model.EmbedUrl)";

    // Read tile Id from Model
    var embedTileId = "@Model.Id";

    // Read dashboard Id from Model
    var embedDashboardId = "@Model.dashboardId";

    // Get models. models contains enums that can be used.
    var models = window['powerbi-client'].models;

    // Embed configuration used to describe the what and how to embed.
    // This object is used when calling powerbi.embed.
    // This also includes settings and options such as filters.
    // You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
    var config = {
        type: 'tile',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedTileId,
        dashboardId: embedDashboardId
    };

    // Get a reference to the embedded tile HTML element
    var tileContainer = $('#tileContainer')[0];

    // Embed the tile and display it within the div container.
    var tile = powerbi.embed(tileContainer, config);
</script>

Views\Home\EmbedReport.cshtmlViews\Home\EmbedReport.cshtml

<script src="~/scripts/powerbi.js"></script>
<div id="reportContainer"></div>
<script>
    // Read embed application token from Model
    var accessToken = "@Model.EmbedToken.Token";

    // Read embed URL from Model
    var embedUrl = "@Html.Raw(Model.EmbedUrl)";

    // Read report Id from Model
    var embedReportId = "@Model.Id";

    // Get models. models contains enums that can be used.
    var models = window['powerbi-client'].models;

    // Embed configuration used to describe the what and how to embed.
    // This object is used when calling powerbi.embed.
    // This also includes settings and options such as filters.
    // You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
    var config = {
        type: 'report',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedReportId,
        permissions: models.Permissions.All,
        settings: {
            filterPaneEnabled: true,
            navContentPaneEnabled: true
        }
    };

    // Get a reference to the embedded report HTML element
    var reportContainer = $('#reportContainer')[0];

    // Embed the report and display it within the div container.
    var report = powerbi.embed(reportContainer, config);
</script>

Další krokyNext steps

Důležité informace a omezeníConsiderations and limitations

Máte další otázky?More questions? Zkuste se zeptat v komunitě Power BI.Try asking the Power BI Community