Extraer datos app Power BI usando API para Python

KARMA

Primero de todo disculpad si no me explico bien , hay muchas cosas que aun no entiendo bien cualquier cosa que veáis que no se entiende decídmelo y intentare explicarlo mejor.

La empresa donde trabajo tiene varias apps de PowerBi , en concreto estoy interesado en extraer datos de una de ellas , que es la encargada de darme varios listados (por ejemplo números y nombres de artículos , ventas semanales , hay bastantes listados cada uno con sus cosas).

El caso es que estoy intentando rehacer una web que termine hace tiempo(para practicar) y exportaba a excel y lo subía a la web(antes de la app de powerbi usabamos otra cosa), el caso es que trasteando en la api de power bi y quiero extraer esos datos mediante ella , para evitar el paso de bajar el archivo y subirlo y así solo tener que crearme un dataframe y trabajar con el.

Tras un par de días de trastear me he topado con un par de problemas, el token que genero solo dura 1h, pero este problema ya lo intentare abordar mas adelante.
El problema mas importante es que no encuentro la manera de que me de la informacion de los listados concretos, me devuelve un json con algunos datos:

{
  "@odata.context": "http://wabi-north-europe-d-primary-redirect.analysis.windows.net/v1.0/myorg/$metadata#reports/$entity",
  "id": XXXXXXXXX,
  "reportType": "PowerBIReport",
  "name": "AL010 - Article Information",
  "webUrl": "https://app.powerbi.com/groups/me/apps/XXXXXXXXX",
  "embedUrl": "https://app.powerbi.com/reportEmbed?reportId=XXXXXXXXX&appId=XXXXXXXXX&config=XXXXXXXXX",
  "isOwnedByMe": true,
  "datasetId": "XXXXXXXXXc",
  "appId": "XXXXXXXXX",
  "originalReportObjectId": "XXXXXXXXX",
  "users": [],
  "subscriptions": []
}

Hasta ahi parece que funciona incluso si le doy al link de webUrl, me lleva al sitio y ahi puedo ver los datos sin problemas

La cosa que en el test de la api de power bi en los encabezados me sale tal que asi:

cache-control: no-store, must-revalidate, no-cache
content-length: 601
content-type: application/json; odata.metadata=minimal
pragma: no-cache
requestid: XXXXXXXXX

En la parte de cache-control me sale no-store , doy por supuesto que al igual que si lo mirara en la web , debo elegir el numero de mi tienda, pero no tengo ni idea de como pasarle ese header, he estado buscando informacion y no encontre nada y mirando con la herramienta de desarollador desde la web que leei que alomejor podia asi tampoco.

Segun chat GPT:
Lamentablemente, no hay un método directo proporcionado por la API de Power BI para obtener los datos en bruto de un informe.

Pero tengo dudas sobre esto, podeis arrojarme algo de luz sobre esto?

Disculpad si ya habia algun post sobre power bi , pero no encontre nada en el buscador

PiPePiTo

Si no me equivoco el api de PowerBI es para embeber informes de PowerBI en la web, no para sacar la información del data source.

Por lo general en estos casos el proceso empieza metiendo el archivo en un proceso interno, ese archivo se mete a una db procesado etc como tenga que estar y de ahí ya PowerBI chupa info y tus apps chupan info (muy simplificado)

Así que no estoy del todo seguro de que puedas sacar la info de powerbi per sé.

Para lo del token de 1h necesitas creo app keys, que eso tiene su trafico medido también y tal

1

Usuarios habituales

  • PiPePiTo
  • KARMA