Incrustación de Power BI para la aplicación web PHP

Un usuario Pregunto ✅

verma_pragya

¿Es posible incrustar un informe de Power BI en una aplicación php? Si es así, ¿cómo generar un token de acceso e incrustar una URL usando php?

Cualquier ayuda será apreciada. Gracias de antemano.

Hola @verma_pragya,

Hay una serie de pasos que debe seguir:

  1. Cree una colección de espacio de trabajo dentro de Azure y obtenga las claves de acceso (entiendo que completó esto)
  2. Cree un espacio de trabajo utilizando el API REST – con PHP, probablemente usará CURL para esto. No olvide agregar el encabezado de autorización con una de las claves de acceso y use POST como se describe aquí. Tenga en cuenta que en realidad no necesita publicar nada, solo use el método POST; de lo contrario, solo obtendrá un JSON con los espacios de trabajo existentes. POST https://api.powerbi.com/v1.0/collections/mypbiapp/workspaces Autorización: AppKey {yourAccessKey}

Ahora debería tener una identificación de espacio de trabajo.

  1. Importe un archivo .pbix desde Power BI Desktop a su espacio de trabajo. Esto es también se logra usando la API REST. no olvide agregar el parámetro datasetDisplayName a la URLes decir: ENVÍE los datos y el archivo a https://api.powerbi.com/v1.0/collections/{nombre de la colección}/workspaces/{workspaceId}/imports?datasetDi…}

Ahora debería tener una identificación de informe.

  1. Cree un token de inserción. Este es un token web JSON (JWT). Puedes usar php-jwt para esto. Se enumera la carga útil de reclamos de JWT requerida para PBIe aquí. Tenga en cuenta que solo necesita pasar la carga útil y su clave de acceso a php-jwt.
  2. Con ese token, finalmente puede incrustar el informe en su aplicación usando Javascript de PowerBI. Puede simplemente copiar el archivo powerbi.js del directorio dist si lo desea. Necesita crear un objeto de configuración como descrito aquí. var embedConfiguration = { type: ‘report’, accessToken: {your-jwt-token-string}, id: {your-report-id-string}, embedUrl: ‘https://embedded.powerbi.com/appTokenReportEmbed’ } ; var $reportContainer = $(‘#reportContainer’); // algún informe div var = powerbi.embed($reportContainer.get(0), embedConfiguration);

Y ahora debería tener un informe en su aplicación.

Referencia: https://stackoverflow.com/questions/39770804/use-powerbi-embedded-in-php

Atentamente,

Esteban Tao

Si esta publicación ayudaentonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @verma_pragya,

Hay una serie de pasos que debe seguir:

  1. Cree una colección de espacio de trabajo dentro de Azure y obtenga las claves de acceso (entiendo que completó esto)
  2. Cree un espacio de trabajo utilizando el API REST – con PHP, probablemente usará CURL para esto. No olvide agregar el encabezado de autorización con una de las claves de acceso y use POST como se describe aquí. Tenga en cuenta que en realidad no necesita publicar nada, solo use el método POST; de lo contrario, solo obtendrá un JSON con los espacios de trabajo existentes. POST https://api.powerbi.com/v1.0/collections/mypbiapp/workspaces Autorización: AppKey {yourAccessKey}

Ahora debería tener una identificación de espacio de trabajo.

  1. Importe un archivo .pbix desde Power BI Desktop a su espacio de trabajo. Esto es también se logra usando la API REST. no olvide agregar el parámetro datasetDisplayName a la URLes decir: ENVÍE los datos y el archivo a https://api.powerbi.com/v1.0/collections/{nombre de la colección}/workspaces/{workspaceId}/imports?datasetDi…}

Ahora debería tener una identificación de informe.

  1. Cree un token de inserción. Este es un token web JSON (JWT). Puedes usar php-jwt para esto. Se enumera la carga útil de reclamos de JWT requerida para PBIe aquí. Tenga en cuenta que solo necesita pasar la carga útil y su clave de acceso a php-jwt.
  2. Con ese token, finalmente puede incrustar el informe en su aplicación usando Javascript de PowerBI. Puede simplemente copiar el archivo powerbi.js del directorio dist si lo desea. Necesita crear un objeto de configuración como descrito aquí. var embedConfiguration = { type: ‘report’, accessToken: {your-jwt-token-string}, id: {your-report-id-string}, embedUrl: ‘https://embedded.powerbi.com/appTokenReportEmbed’ } ; var $reportContainer = $(‘#reportContainer’); // algún informe div var = powerbi.embed($reportContainer.get(0), embedConfiguration);

Y ahora debería tener un informe en su aplicación.

Referencia: https://stackoverflow.com/questions/39770804/use-powerbi-embedded-in-php

Atentamente,

Esteban Tao

Si esta publicación ayudaentonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

lbendlin

Power BI Embedded (microsoft.com) Probablemente querrá optar por la API de JavaScript. ¿Tienes Azure AD?

verma_pragya

En respuesta a lbendlin

Sí, tengo Azure AD. Puedo incrustar un informe usando c# y python para generar el token de acceso y la URL incrustada, y las API de descanso de javascript para incrustar. Sin embargo, no tengo idea de cómo generar un token de acceso usando PHP, ya que quiero incrustar un informe en mi aplicación PHP.

Melsmithsch

En respuesta a verma_pragya

Estoy trabajando en un problema similar… tratando de incrustar para clientes en Drupal. Hasta ahora, mi solución es usar la solución python (con matraz) y potencialmente incrustar la URL del servicio del matraz (localhost: 5000 por ahora) en un iframe para entregar el informe. Funciona en mi instancia local de Drupal. Estoy trabajando en cómo pasar la identificación de usuario de Drupal a Javascript y luego a la API de PowerBI para seguridad de nivel de fila.
¡¡Buena suerte!!

Deja un comentario

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