Incorporare un report nelle raccolte di aree di lavoro di Power BI

Informazioni su come incorporare nell'applicazione un report che si trova nelle raccolte di aree di lavoro di Power BI.

Importante

Le raccolte di aree di lavoro di Power BI sono deprecate e sono disponibili fino a giugno 2018 o fino alla data specificata nel contratto. È consigliabile pianificare la migrazione a Power BI Embedded per evitare interruzioni nell'applicazione. Per informazioni su come eseguire la migrazione dei dati a Power BI Embedded, vedere Come eseguire la migrazione del contenuto delle raccolte di aree di lavoro di Power BI a Power BI Embedded.

Verrà esaminato come incorporare effettivamente un report nell'applicazione. Ciò presuppone che esista già un report in un'area di lavoro della raccolta di aree di lavoro. Se questo passaggio non è ancora stato completato, vedere Introduzione alle raccolte di aree di lavoro di Power BI.

Per compilare facilmente l'applicazione con le raccolte di aree di lavoro di Power BI, è possibile usare l'SDK per .NET (C#) o Node.js, insieme a JavaScript.

Uso delle chiavi di accesso per API REST

Per chiamare l'API REST, è possibile passare la chiave di accesso che può essere ottenuta dal portale di Azure per una determinata raccolta di aree di lavoro. Per altre informazioni, vedere Introduzione alle raccolte di aree di lavoro di Power BI.

Ottenere un ID report

Ogni token di accesso è basato su un report. È necessario ottenere lo specifico ID del report che si vuole incorporare. A questo scopo è possibile effettuare chiamate all'API REST Get Reports, che restituirà l'ID report e l'URL di incorporamento. È possibile usare Power BI .NET SDK oppure chiamare direttamente l'API REST.

Uso di Power BI .NET SDK

Quando si usa .NET SDK, è necessario creare una credenziale token basata sulla chiave di accesso ottenuta dal portale di Azure. Ciò richiede l'installazione del pacchetto NuGet Power BI API.

Installazione del pacchetto NuGet

Install-Package Microsoft.PowerBI.Api

Codice C#

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.

Chiamata diretta dell'API REST

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.
    }

}

Creare un token di accesso

Le raccolte di aree di lavoro di Power BI usano token incorporati, ovvero token Web JSON con firma HMAC. I token sono firmati con la chiave di accesso della raccolta di aree di lavoro di Power BI. Per impostazione predefinita, i token di incorporamento vengono usati per concedere l'accesso di sola lettura a un report da incorporare in un'applicazione. I token di incorporamento vengono rilasciati per un report specifico e dovranno essere associati a un URL di incorporamento.

I token di accesso devono essere creati nel server perché le chiavi di accesso vengono usate per firmare/crittografare i token. Per informazioni sulla creazione di un token di accesso, vedere Autenticazione e autorizzazione con le raccolte di aree di lavoro di Power BI. È anche possibile esaminare il metodo CreateReportEmbedToken. Di seguito è riportato un esempio corrispondente all'uso di .NET SDK per Power BI.

Usare l'ID report recuperato in precedenza. Dopo avere creato il token di incorporamento, si userà la chiave di accesso per generare il token da usare per JavaScript. La classe PowerBIToken richiede l'installazione del pacchetto NuGet Power BI Core.

Installazione del pacchetto NuGet

Install-Package Microsoft.PowerBI.Core

Codice C#

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}");

Aggiunta degli ambiti di autorizzazione ai token di incorporamento

Quando si usano token di incorporamento, può essere opportuno limitare l'uso delle risorse a cui si concede l'accesso. Per questo motivo, è possibile generare un token con autorizzazioni con ambito. Per altre informazioni, vedere Ambiti

Incorporare con JavaScript

Dopo aver ottenuto il token di accesso e l'ID report, è possibile incorporare il report con JavaScript. Ciò richiede l'installazione del pacchetto NuGet javaScript Power BI. L'URL di incorporamento sarà https://embedded.powerbi.com/appTokenReportEmbed.

Nota

Per testare il funzionamento, è possibile usare l'esempio dell'incorporamento di report con JavaScript, che offre anche esempi di codice per le diverse operazioni disponibili.

Installazione del pacchetto NuGet

Install-Package Microsoft.PowerBI.JavaScript

codice JavaScript

<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>

Impostare le dimensioni degli elementi incorporati

Il report verrà automaticamente incorporato in base alle dimensioni del contenitore. Per eseguire l'override delle dimensioni predefinite dell'elemento incorporato, è sufficiente aggiungere stili in linea o un attributo di classe CSS per larghezza e altezza.

Vedi anche

Esempio introduttivo
Autenticazione e autorizzazione con le raccolte di aree di lavoro di Power BI
CreateReportEmbedToken
Esempio di incorporamento JavaScript
Pacchetto Power BI JavaScript
Pacchetto NuGet Power BI APIPacchetto NuGet Power BI Core
Repository Git PowerBI-CSharp
Repository Git PowerBI-Node

Altre domande? Provare la community di Power BI