Een rapport insluiten in Power BI werkruimteverzamelingen

Informatie over het insluiten van een rapport in Power BI Werkruimteverzamelingen in uw toepassing.

Belangrijk

Power BI Workspace Collections is afgeschaft en is beschikbaar tot juni 2018 of tot de datum die in uw contract wordt aangegeven. Om onderbreking van uw toepassing te voorkomen, wordt u geadviseerd om een migratie naar Power BI Embedded te plannen. Voor meer informatie over het migreren van gegevens naar Power BI Embedded raadpleegt u How to migrate Power BI Workspace Collections content to Power BI Embedded (Inhoud van Power BI-werkruimteverzamelingen migreren naar Power BI Embedded).

We bekijken hoe u een rapport daadwerkelijk insluit in uw toepassing. Hierbij wordt ervan uitgegaan dat u al een rapport hebt dat zich in een werkruimte in uw werkruimteverzameling bevindt. Als u deze stap nog niet hebt uitgevoerd, raadpleegt u Aan de slag met Power BI werkruimteverzamelingen.

U kunt de .NET (C#) of Node.js SDK, samen met JavaScript, gebruiken om eenvoudig uw toepassing te bouwen met Power BI Werkruimteverzamelingen.

De toegangssleutels gebruiken om REST API's te gebruiken

Als u de REST API wilt aanroepen, kunt u de toegangssleutel doorgeven die u kunt ophalen uit de Azure Portal voor een bepaalde werkruimteverzameling. Zie Aan de slag met Power BI werkruimteverzamelingen voor meer informatie.

Een rapport-id ophalen

Elk toegangstoken is gebaseerd op een rapport. U moet de opgegeven rapport-id ophalen voor het rapport dat u wilt insluiten. Dit kan worden gedaan op basis van aanroepen naar de REST API voor Get Reports . Hiermee worden de rapport-id en de invoeg-URL geretourneerd. U kunt dit doen met behulp van de Power BI .NET SDK of de REST API rechtstreeks aanroepen.

De Power BI .NET SDK gebruiken

Wanneer u de .NET SDK gebruikt, moet u een tokenreferentie maken die is gebaseerd op de toegangssleutel die u krijgt uit de Azure Portal. Hiervoor moet u het API van Power BI NuGet-pakket installeren.

NuGet-pakket installeren

Install-Package Microsoft.PowerBI.Api

C#-code

using Microsoft.PowerBI.Api.V1;
using Microsoft.Rest;

var credentials = new TokenCredentials("{access key}", "AppKey");
var client = new PowerBIClient(credentials);
client.BaseUri = new Uri(https://api.powerbi.com);

var reports = (IList<Report>)client.Reports.GetReports(workspaceCollectionName, workspaceId).Value;

// Select the report that you want to work with from the collection of reports.

De REST API rechtstreeks aanroepen

System.Net.WebRequest request = System.Net.WebRequest.Create("https://api.powerbi.com/v1.0/collections/{collectionName}/workspaces/{workspaceId}/Reports") as System.Net.HttpWebRequest;

request.Method = "GET";
request.ContentLength = 0;
request.Headers.Add("Authorization", String.Format("AppKey {0}", accessToken.Value));

using (var response = request.GetResponse() as System.Net.HttpWebResponse)
{
    using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
    {
        // Work with JSON response to get the report you want to work with.
    }

}

Een toegangstoken maken

Power BI Werkruimteverzamelingen maken gebruik van invoegtokens. Dit zijn met HMAC ondertekende JSON-webtokens. De tokens worden ondertekend met de toegangssleutel vanuit uw Power BI Werkruimteverzameling. Insluittokens worden standaard gebruikt om alleen-lezentoegang te bieden tot een rapport om in te sluiten in een toepassing. Insluittokens worden uitgegeven voor een specifiek rapport en moeten worden gekoppeld aan een insluit-URL.

Toegangstokens moeten worden gemaakt op de server omdat de toegangssleutels worden gebruikt om de tokens te ondertekenen/te versleutelen. Zie Verifiëren en autoriseren met Power BI Werkruimteverzamelingen voor meer informatie over het maken van een toegangstoken. U kunt ook de methode CreateReportEmbedToken bekijken. Hier volgt een voorbeeld van hoe dit eruit zou zien met behulp van de .NET SDK voor Power BI.

U gebruikt de rapport-id die u eerder hebt opgehaald. Zodra het insluittoken is gemaakt, gebruikt u vervolgens de toegangssleutel om het token te genereren dat u vanuit het javascript-perspectief kunt gebruiken. Voor de PowerBIToken-klasse moet u het Power BI Core NuGut-pakket installeren.

NuGet-pakket installeren

Install-Package Microsoft.PowerBI.Core

C#-code

using Microsoft.PowerBI.Security;

// rlsUsername, roles and scopes are optional.
embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollectionName, workspaceId, reportId, rlsUsername, roles, scopes);

var token = embedToken.Generate("{access key}");

Machtigingsbereiken toevoegen aan insluittokens

Wanneer u insluittokens gebruikt, kunt u het gebruik beperken van de resources die u toegang geeft. Daarom kunt u een token genereren met machtigingen binnen het bereik. Zie Bereiken voor meer informatie

Insluiten met Behulp van JavaScript

Nadat u het toegangstoken en de rapport-id hebt, kunnen we het rapport insluiten met behulp van JavaScript. Hiervoor moet u het NuGet Power BI JavaScript-pakket installeren. De embedUrl is https://embedded.powerbi.com/appTokenReportEmbedgewoon.

Notitie

U kunt het Voorbeeld van het insluiten van JavaScript-rapporten gebruiken om de functionaliteit te testen. Er worden ook codevoorbeelden weergegeven voor de verschillende bewerkingen die beschikbaar zijn.

NuGet-pakket installeren

Install-Package Microsoft.PowerBI.JavaScript

JavaScript-code

<script src="/scripts/powerbi.js"></script>
<div id="reportContainer"></div>

<script>
var embedConfiguration = {
    type: 'report',
    accessToken: 'eyJ0eXAiO...Qron7qYpY9MI',
    id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',
    embedUrl: 'https://embedded.powerbi.com/appTokenReportEmbed'
};

var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
</script>

De grootte van ingesloten elementen instellen

Het rapport wordt automatisch ingesloten op basis van de grootte van de container. Als u de standaardgrootte van het ingesloten item wilt overschrijven, voegt u gewoon een CSS-klassekenmerk of inlinestijlen toe voor breedte en hoogte.

Zie ook

Aan de slag met het voorbeeld
Authenticating and authorizing in Power BI Workspace Collections (Verifiëren en autoriseren in Power BI Workspace Collections)
CreateReportEmbedToken
Voorbeeld van Insluiten in JavaScript
Power BI JavaScript-pakket
API van Power BI NuGet-pakketPower BI Core NuGut-pakket
Git-opslagplaats PowerBI-CSharp
Git-opslagplaats powerBI-knooppunt

Hebt u nog vragen? Misschien dat de Power BI-community het antwoord weet