Informe de incrustación de Power BI JavaScript

Un usuario Pregunto ✅

rahulpower

Cómo incrustar informes de Power BI para mi propia aplicación para que los usuarios que no son bi puedan acceder a ellos. Aparte de usar por Iframe I desea utilizar Rest API.

Estoy atascado sobre cómo generar este token y cómo obtenerlo.

He referido este proyecto https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html a la prueba.

https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html

En esto, I quiero saber cómo puedo obtener de mi informe de Power BI. He creado algunos informes de muestra y quiero que se muestren en mi propia aplicación para no usuario de BI

1. Insertar token

2. Insertar URL

3. ID del informe

Ya me he registrado por aplicación en https://dev.powerbi.com/apps

creó una cuenta en Azure Portal pero no puede obtener

Proporcione imágenes paso a paso si puede

problema.png

nimrod

En respuesta a rahulpower

Hola,

Puede encontrar todos los pasos necesarios para configurar el entorno y comenzar a incorporar,
en este enlace- https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-embedding/

¿Cómo aplicar la línea de tendencia en la incrustación de informes existentes utilizando la API de cliente Power Bi o la API de cliente de autoría? ¿Hay métodos de cliente js disponibles para hacer eso? por favor proporcione sugerencias

@rahulpower

El proceso de incrustación para usuarios de bi no avanzados se encuentra en esta demostración. La aplicación posee los datos.

Para obtener el token incrustado, la URL incrustada y la identificación del informe, el primer paso es obtener un token de acceso, consulte el fragmento de código de este HomeController.cs.

            var credential = new UserPasswordCredential(Username, Password);

            // Authenticate using created credentials
            var authenticationContext = new AuthenticationContext(AuthorityUrl);
            var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceUrl, ClientId, credential);

Y luego

// Create a Power BI Client object. It will be used to call Power BI APIs.
            using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
            {
                 
                // Get a list of reports.
                var reports = await client.Reports.GetReportsInGroupAsync(GroupId);

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

                if (report == null)
                {
                    return View(new EmbedConfig()
                    {
                        ErrorMessage = "Group has no reports."
                    });
                }

                // Generate Embed Token.
                var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
                var tokenResponse = await client.Reports.GenerateTokenInGroupAsync(GroupId, report.Id, generateTokenRequestParameters);

                if (tokenResponse == null)
                {
                    return View(new EmbedConfig()
                    {
                        ErrorMessage = "Failed to generate embed token."
                    });
                }

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

En realidad, el código subyacente llama a esas API REST de POWER BI Get Reports y GenerateToken.

Junilo

En respuesta a Eric_Zhang

@Eric_Zhang He estado siguiendo este artículo

https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-get-azuread-access-token/

Token de acceso para usuarios que no son de Power BI (la aplicación posee datos)

y he modelado el Controller.cs de mi aplicación web para obtener un token de inserción … desafortunadamente, estoy atascado con una excepción de que no estoy seguro de cuál es la causa raíz.

Que ha sido hasta ahora:

1. Un usuario de AAD con licencia de Power BI Pro

2. Espacio de trabajo de la aplicación con 1 panel de control cargado: conectado a nuestro CUBE alojado en el servidor de Azure Analysis Services

3. Registré mi aplicación web en Azure AAD, asigné permisos tanto en el servicio Power BI como en AAD

Puedo iniciar sesión en AAD usando ClientID y ClientSecret:

var clientId = ""; // took out actual value
var clientSecret = ""; // took out actual value
var authContext = new AuthenticationContext("https://login.windows.net/common/oauth2/authorize/");
var credential = new ClientCredential(clientId, clientSecret);
var authRes = (AuthenticationResult)authContext.AcquireTokenAsync("https://analysis.windows.net/powerbi/api", credential).Result;

var aadToken = authRes.AccessToken; // all good!

// get Embed Token for app workspace dashboard identified by groupId and dashboardId
var groupId = ""; // took out actual value
var dashboardId = ""; // took out actual value

var tokenCredentials = new TokenCredentials(aadToken , "Bearer");
using (var client = new PowerBIClient(new Uri("https://api.powerbi.com/"), tokenCredentials))
{
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");

// GenerateTokenInGroup is throwing exception: Operation returned an invalid status code 'Forbidden'
var tokenResponse = client.Dashboards.GenerateTokenInGroup(groupId, dashboardId, generateTokenRequestParameters); // Generate Embed Configuration. var embedConfig = new { EmbedToken = tokenResponse, EmbedUrl = "", Id = dashboardId }; }

La primera diferencia que puedo notar entre la muestra y mi implementación es que no estoy usando la versión Async del método. Estoy usando GenerateTokenInGroup en lugar de GenerateTokenInGroupAsync. ¿Es necesario utilizar GenerateTokenInGroupAsync?

No configuré nada en Power BI Premium o en el que necesitamos asignar capacidad, no creo que sea necesario en la etapa de desarrollo.

¿Qué me estoy perdiendo?

rahulpower

En respuesta a Eric_Zhang

Muchas gracias. Necesito hacerlo en Javascript, ¿puedes darme los pasos o ayudarme a crear azure y todas las ideas paso a paso?

Gracias una vez más

nimrod

En respuesta a rahulpower

Hola,

Puede encontrar todos los pasos necesarios para configurar el entorno y comenzar a incorporar,
en este enlace- https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-embedding/

Ashley1022

En respuesta a nimrod

¿Funcionaría una versión de prueba de PowerBI Pro?

Office 365 muestra mi cuenta de Power BI como gratuita.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *