vilmarci
Estimada comunidad,
Recibí una tarea para crear un informe sobre todas las salas de reuniones libres en un momento dado. Por lo que puedo ver, esto se puede lograr accediendo a todos los calendarios compartidos a través de Graph API:
https://graph.microsoft.com/beta/me/findRooms
No tengo experiencia en absoluto, pero pasé medio día para que la conexión funcionara sin éxito. En Graph Exlorer obtengo los resultados correctos, pero no pude hacerlo funcionar en PowerBI. Cuando intento conectarme, aparece un mensaje de error: «El acceso al recurso está prohibido».
Incluso creé una clave API y agregué permiso para usar la API gráfica, pero nunca obtuve ningún dato, solo errores. Cuando ingreso la clave api, el error es que solo puedo usar la clave api cuando uso la autenticación anónima, pero ya no puedo regresar y cambiar la autenticación. Además, parece totalmente aleatorio cuando tengo la opción de elegir entre métodos de autenticación.
Por favor, que alguien me indique los pasos que debo seguir para obtener los datos en PowerBI. Gracias.
toneladamcg
Microsoft Graph implementa el flujo de autenticación de OAuth 2.0 y, por lo tanto, para acceder a él con Power BI, deberá crear un conector de datos personalizado. Aquí hay un tutorial que explica paso a paso cómo crear un conector de datos personalizado con OAuth 2.0 para Microsoft Graph en Power BI.
rafael_inoue
Hola,
¿Tiene una solución para solucionar este problema sobre el acceso prohibido en las consultas de gráficos?
Tengo el mismo problema y no importa lo que haga, simplemente no puedo usar esta fuente de datos como una fuente de datos.
Gracias
ChrisAtMAF
Encontré una manera de hacer esto que implica conectarme a Microsoft Graph usando una aplicación web de Azure sin tener que jugar con Visual Studio. Espero que sea útil para otros también:
https://minkus.medium.com/conexión-fácil-entre-power-query-power-bi-y-microsoft-graph-72333eb…
toneladamcg
En respuesta a ChrisAtMAF
Esta debería ser la respuesta aceptada. Tutorial extremadamente completo que permite que Power Query (Power BI, Excel, etc.) interactúe con la API de Microsoft Graph. ¡Bravo!
(Ahora, todo lo que necesita es una forma de descifrar ese secreto de cliente).
Redoble de tambores peludo
En respuesta a toneladamcg
@tonmcg escribió:
Esta debería ser la respuesta aceptada.
Excepto que no funciona para los permisos delegados, que es lo que necesita para poder leer los datos de Microsoft ToDo.
JSR
Esto me funciona ahora directamente usando el feed de Odata… ¿algo ha cambiado?
https://graph.microsoft.com/beta/groups
Anónimo
En respuesta a JSR
Hola, tengo errores en este… Cuando lo uso desde el escritorio, funciona bien, pero al publicar en el servicio PB, la conexión tiene errores de autenticación.
cristianoag
Documenté un enfoque para que Power BI consuma datos de Graph. Existe una solución que utiliza la autenticación de aplicación explícita para las operaciones que admiten eso y un conector personalizado para las que solo admiten permisos de usuario/delegados. Más detalles disponibles en https://techpeanuts.wordpress.com/2020/05/28/connecting-power-bi-to-microsoft-graph/
Redoble de tambores peludo
En respuesta a cristianoag
@cristianoag escribió:
…Más detalles disponibles en https://techpeanuts.wordpress.com/2020/05/28/connecting-power-bi-to-microsoft-graph/
404 Pagina no encontrada
¿Quiso decir https://tech-peanuts.com/2020/05/28/connecting-power-bi-to-microsoft-graph/?
jude_moore
En respuesta a cristianoag
@cristianoag escribió:
Documenté un enfoque para que Power BI consuma datos de Graph. Existe una solución que utiliza la autenticación de aplicación explícita para las operaciones que admiten eso y un conector personalizado para las que solo admiten permisos de usuario/delegados. Más detalles disponibles en https://techpeanuts.wordpress.com/2020/05/28/connecting-power-bi-to-microsoft-graph/
Genial gracias @cristianoag
Le echare un vistazo y te aviso. Disculpas. Problema de inicio de sesión
Saludos
Judas
JanBakker
https://janbakker.tech/2020/05/09/use-graph-api-data-in-power-bi-using-logicapps/
Hay una manera fácil de esto. Simplemente use una aplicación lógica para su consulta HTTP y autenticación de juramento.
mranalytics
En respuesta a JanBakker
Por lo que entiendo, la documentación de Microsoft sobre esto, aparentemente, ¡el uso de Graph API en Power BI y en otros casos de uso es «compatible con notas»!
https://docs.microsoft.com/en-us/power-query/connecting-to-graph
talesaritos
¿Este ejemplo de conector funciona solo con la autenticación de la aplicación, es decir, sin un usuario en el contexto que solo usa client_secret de la aplicación?
toneladamcg
Microsoft Graph implementa el flujo de autenticación de OAuth 2.0 y, por lo tanto, para acceder a él con Power BI, deberá crear un conector de datos personalizado. Aquí hay un tutorial que explica paso a paso cómo crear un conector de datos personalizado con OAuth 2.0 para Microsoft Graph en Power BI.
Harsh_Jariwala
En respuesta a toneladamcg
Hola a todos,
Tengo un problema al obtener datos del método getSchedule de la API de Microsoft Graph. Es un método POST.
Power BI me da un error de solicitud incorrecta 400. He registrado una aplicación de Azure AD con todos los permisos necesarios mencionados en la documentación de getSchedule como se muestra a continuación:
También obtengo access_token en Power BI. He escrito debajo del código M Query para llamar a la API:
let
token_uri = "https://login.windows.net/" & #"Azure AD Tenant ID" & "/oauth2/token",
resource="https://graph.microsoft.com",
tokenResponse = Json.Document(Web.Contents(token_uri,
[
Content = Text.ToBinary(Uri.BuildQueryString(
[
client_id = #"Azure Application Client ID",
resource = resource,
grant_type = "client_credentials",
client_secret = #"Azure Application Client Secret"
]
)),
Headers = [Accept = "application/json"],ManualStatusHandling = {400}
])),
access_token = tokenResponse[access_token],
body= Text.ToBinary("{
""schedules"": [
""abc.def@ghi.com""
],
""startTime"": {
""dateTime"": ""2021-09-03T00:00:00"",
""timeZone"": ""UTC""
},
""endTime"": {
""dateTime"": ""2021-09-03T23:59:59"",
""timeZone"": ""UTC""
}
}"),
Source = Json.Document(Web.Contents(#"Graph API Base Url" & #"Graph API Url Sub Part",
[Headers=[#"Authorization"="Bearer " & access_token,#"Content-Type"="application/json;charset=utf-8"],Content=body]))
in
Source
Recibo el siguiente error:
¿Puede alguien ayudarme con esto?
Cualquier ayuda es muy apreciada.
Gracias.
Redoble de tambores peludo
En respuesta a toneladamcg
@tonmcg escribió:
Aquí hay un tutorial
El enlace está muerto.
jprdynamicapps
En respuesta a toneladamcg
¿Puedes compartir detalles sobre cómo hiciste que esto funcionara?
El código MyGraph arrojó ResourceAccessAuthoriationException.
Lo estoy modificando para usar PKCE (¿es eso lo que usaste?), pero aún no he podido hacerlo funcionar.
Gracias.
-jpr
choque
En respuesta a toneladamcg
Gracias por publicar esta solución aquí. ¿Parece extraño que esto no sea nativo?
iseth
En respuesta a toneladamcg
Hola, esta puede ser una pregunta estúpida, pero ¿cuál sería la identificación del cliente? Por lo que sé, solo lo estoy conectando a Graph API, por lo que no hay ninguna aplicación involucrada.
iseth
En respuesta a iseth
Además, ¿alguien ha intentado hacer algún tipo de tablero de seguimiento de gastos agregando los gastos relacionados con todas las aplicaciones en la nube, como Dropbox, Slack, etc.? @vilmarci @Anonymous @tonmcg
vilmarci
En respuesta a toneladamcg
No estoy seguro de poder preguntar esto aquí, ya que pertenece un poco a esta pregunta, pero ¿cómo puedo usar POST con esta solución? ¿Al igual que la consulta https://graph.microsoft.com/beta/me/calendar/getschedule necesita un encabezado que debo publicar para obtener los datos?
Traté de encontrar la respuesta en la documentación de OData.Feed. Esto dice que puedo agregar los encabezados, pero no hay una sintaxis de cómo hacerlo.