Ejecución de consultas de Graph API

Un usuario Pregunto ✅

Alietzau

Para empezar, las consultas que me gustaría ejecutar son:

  • https://graph.microsoft.com/v1.0/subscriptionSkus
  • https://graph.microsoft.com/v1.0/users/ / licenseDetails

He intentado muchas formas diferentes de intentar obtener la información de esta consulta. Sé que funciona en Graph Explorer, intenté ejecutarlo usando Postman (Instrucciones de Microsoft) y la consulta no funciona con la aplicación AAD que hice. Intenté usar el conector de seguridad de Microsoft Graph, pero solo puedo usar ciertas consultas (por ejemplo, https://graph.microsoft.com/v1.0/me/licenseDetails). Hay otro hilo en el que discuten cómo extraer datos de Graph API a powerBI, pero la guía se publicó hace un año y muchos de los enlaces que contiene están rotos. Intenté hablar con diferentes personas sobre cómo obtener los datos de Graph API, pero no he escuchado nada muy útil. Me dijeron que usara llamadas a la API REST genéricas para ejecutar la consulta, pero no sé cómo manejar los tokens de acceso con PowerBI.

He probado muchas cosas aquí y me sorprende que no sea más fácil ya que Graph API es muy útil. Si puedo obtener la ayuda que necesito para ejecutar solo una consulta, estoy seguro de que podré usar el mismo proceso para las otras consultas y podré producir un proyecto que sea útil para toda nuestra comunidad.

ImkeF

En respuesta a Alietzau

También preferiría que esto fuera más fácil.

Actualmente tienes que:

1) use un conector personalizado y

2) cree una aplicación en el portal azure que maneje la autenticación para el conector

Con mi conector, puedo ver los detalles de la licencia. Desafortunadamente, no puedo agregar los permisos para las suscripciones a la aplicación, ya que actualmente es una función de vista previa.

Hágame saber si desea continuar solo para obtener los detalles de la licencia y puedo brindarle más ayuda sobre cómo implementar el conector. ¿Estoy entendiendo bien que ya ha registrado su aplicación correctamente?

ImkeF

En respuesta a Alietzau

Hola @alietzau,

genial, gracias por el consejo, ¡eso también funcionó para mí! En realidad, afortunadamente, no tuve que borrar mis otros permisos.

Puedes probar mi conector. El zip adjunto incluye todos los archivos necesarios. Tienes que realizar los siguientes pasos:

1) Descomprímelo

2) editar client_id: reemplace el contenido por el ID de cliente de su aplicación

3) editar client_secret: reemplace el contenido por el secreto del cliente de su aplicación

4) comprima todos los archivos y cambie el nombre del archivo zip a «MyGraphB.mez»

5) Copie ese archivo en su carpeta de Power BI Desktop: C: Usuarios Documentos Power BI Desktop Conectores personalizados

Ahora, cuando escriba «mygr», por ejemplo, deberían aparecer estos 2 elementos:

image.png

Elija este último («MyGraphB2.WebContents») y pegue la URL de su elección.

Si está interesado, he descrito la adición de Web.Contents aquí: https://www.thebiccountant.com/2019/04/17/graph-api-custom-connector-power-bi/

JanBakker

https://janbakker.tech/2020/05/09/use-graph-api-data-in-power-bi-using-logicapps/

¡Esta también es una solución fácil!

Alietzau

@ImkeF, espero que no te importe si sigo molestándote, pero he intentado ejecutar consultas que implican más de 100 devoluciones, por lo que me da un valor @ odata.nextlink. ¿Sabes cómo puedo hacer que PowerBI recupere los próximos 100 valores? No he visto ninguna discusión sobre esto con PowerBI en mente.

ImkeF

En respuesta a Alietzau

Sí, eso se llama paginación o paginación.

Una buena publicación es esta: https://datachant.com/2016/06/27/cursor-based-pagination-power-query/

Pero su motor de búsqueda favorito también devolverá muchas otras muestras 😉

v-piga-msft

Hola @alietzau,

Parece que quieres usar el Graph API como fuente de datos en power bi desktop.

Si ese es el caso, consulte este hilo similar que se ha resuelto en primer lugar.

Si necesita otra ayuda, no dude en preguntar.

Atentamente,

cereza

Alietzau

En respuesta a v-piga-msft

@ v-piga-msft La publicación que vinculó es la misma a la que me refiero en mi publicación original. La guía a la que se vinculan no es una guía paso a paso y es difícil seguir lo que están tratando de hacer y hacia dónde va la powerquery. Muchos de los enlaces para el material de apoyo en esa misma guía están rotos, es difícil investigar este problema. También hay usuarios al final de esa publicación que mencionan que todavía tienen problemas después de investigar esto durante meses.

Creo que Graph API es un recurso poderoso y es una pena que la comunidad de PowerBI no tenga una forma clara de extraer la información. Creo que si resolvemos esto, podemos ayudar a la comunidad creando paneles de control poderosos sin la necesidad de herramientas de terceros.

ImkeF

En respuesta a Alietzau

También preferiría que esto fuera más fácil.

Actualmente tienes que:

1) use un conector personalizado y

2) cree una aplicación en el portal azure que maneje la autenticación para el conector

Con mi conector, puedo ver los detalles de la licencia. Desafortunadamente, no puedo agregar los permisos para las suscripciones a la aplicación, ya que actualmente es una función de vista previa.

Hágame saber si desea continuar solo para obtener los detalles de la licencia y puedo brindarle más ayuda sobre cómo implementar el conector. ¿Estoy entendiendo bien que ya ha registrado su aplicación correctamente?

Alietzau

En respuesta a ImkeF

@ImkeF Solo pude obtener las consultas que enumeré para que funcionen, usando el permiso de «Directory.Read.All» y asegurándome de que no se agregaron otros permisos a mi aplicación. A continuación, enumero los resultados de las consultas como referencia.

  • https://graph.microsoft.com/v1.0/subscriptionSkus
    • Recupera el recuento de licencias, el uso y el recuento de licencias abiertas para nuestro inquilino.
  • https://graph.microsoft.com/v1.0/users/ / licenseDetails
    • Recupera las licencias que tiene un usuario. (como su E3 o PowerBI Pro)

Ahora todo lo que tengo que hacer es compilar powerquery para ejecutar la consulta Graph API. Eché otro vistazo a la guía que mencioné en mi publicación original y todavía es difícil de seguir. ¿Tiene una buena guía para construir este conector personalizado? Creo que este es el último obstáculo que me impide usar los datos.

ImkeF

En respuesta a Alietzau

Hola @alietzau,

genial, gracias por el consejo, ¡eso también funcionó para mí! En realidad, afortunadamente, no tuve que borrar mis otros permisos.

Puedes probar mi conector. El zip adjunto incluye todos los archivos necesarios. Tienes que realizar los siguientes pasos:

1) Descomprímelo

2) editar client_id: reemplace el contenido por el ID de cliente de su aplicación

3) editar client_secret: reemplace el contenido por el secreto del cliente de su aplicación

4) comprima todos los archivos y cambie el nombre del archivo zip a «MyGraphB.mez»

5) Copie ese archivo en su carpeta de Power BI Desktop: C: Usuarios Documentos Power BI Desktop Conectores personalizados

Ahora, cuando escriba «mygr», por ejemplo, deberían aparecer estos 2 elementos:

image.png

Elija este último («MyGraphB2.WebContents») y pegue la URL de su elección.

Si está interesado, he descrito la adición de Web.Contents aquí: https://www.thebiccountant.com/2019/04/17/graph-api-custom-connector-power-bi/

Alietzau

En respuesta a ImkeF

@ImkeF ¡Gracias! Creo que esto me acerca mucho, pero todavía me encuentro con un obstáculo. Actualicé el client_id y el archivo secreto y lo empaqueté como dijiste. Sin embargo, cuando intento usar el conector para ejecutar mi consulta, aparece este error.

Powerbi Error.png

¿Sabes por qué no encuentra el client_id? Estoy seguro de que el nombre coincide con el archivo en el archivo .mez. No estoy lo suficientemente familiarizado con los conectores personalizados para determinar por qué tendría este problema.

Además, gracias por su ayuda con todo esto.

ImkeF

En respuesta a Alietzau

El mensaje de error significa que el archivo no se encuentra, por lo que el el contenido aún no ha sido verificado.

Verifique que al guardar el archivo, no se haya agregado ninguna extensión al archivo.

Si nada más ayuda, solo puede integrar el client_id como una variable directa en el código del conector en lugar de hacer referencia a él desde un archivo externo.

Alietzau

En respuesta a ImkeF

@ImkeF ¡Eso funciona! ¡Muchas gracias! Esto es genial, me alegro de poder comenzar a trabajar en el informe ahora que puedo incorporar los datos. Es una pena que no pueda actualizar las consultas en PowerBI Pro, pero con la utilidad de esta información es, tomaré ese golpe.

Nuevamente, muchas gracias por su ayuda.

Deja un comentario

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