Web.Contents arroja un error al intentar pasar el token: se requieren credenciales para conectarse a la Web

Un usuario Pregunto ✅

OneWithQuestion

Se requieren credenciales para conectarse a la fuente web. Deberá actualizar y proporcionar credenciales para continuar. (Fuente en https://login.microsoftonline.com/**************************/oauth2/v2.0/token.)

Estaba siguiendo la guía para usar Graph API con Power BI y todo funcionaba bien hasta este paso en el que obtengo un token y lo paso a través de M en PowerBI Desktop https://docs.microsoft.com/en-us/ power-query / samples / mygraph / readme # implementando-la-interfaz-oauth

No estoy seguro de cómo superar este problema, ya que no puedo resolver el error.

Voy a iniciar sesión con Anónimo como se indica, pero simplemente arroja el error después de eso:

anon login.png

Aquí está la consulta M que estoy usando, ¿tal vez estoy cometiendo un error allí?

————-

dejar
client_id = «** myclientID ***»,
redirect_uri = «https://login.microsoftonline.com/common/oauth2/nativeclient»,
token_uri = «https://login.microsoftonline.com/*****tenant*****/oauth2/v2.0/token»,
authorize_uri = «https://login.microsoftonline.com/****tenant*****/oauth2/v2.0/authorize»,
logout_uri = «https://login.microsoftonline.com/logout.srf»,

scope_prefix = «https://graph.microsoft.com/»,
alcances = {
«User.Read.All»,
«Directory.Read.All»,
«Organización. Leer.todos»
},

Value.IfNull = (a, b) => si a <> null entonces a else b,

GetScopeString = (ámbitos como lista, scopePrefix opcional como texto) como texto =>
dejar
prefijo = Value.IfNull (scopePrefix, «»),
addPrefix = List.Transform (ámbitos, cada prefijo & _),
asText = Text.Combine (addPrefix, «»)
en
asText,

authorizeUrl = authorize_uri & «?» & Uri.BuildQueryString ([
client_id = client_id,
redirect_uri = redirect_uri,
scope = GetScopeString(scopes, scope_prefix),
response_type = «code»,
response_mode = «query»,
login = «login»
]),

tokenResponse = Web.Contents (token_uri, [
Content = Text.ToBinary(Uri.BuildQueryString([
client_id = client_id,
code = «****token I get back manually****»,
scope = GetScopeString(scopes, scope_prefix),
grant_type = «authorization_code»,
redirect_uri = redirect_uri])),
Encabezados = [
#»Content-type» = «application/x-www-form-urlencoded»,
#»Accept» = «application/json»
],
ManualStatusHandling = {400}
]),
cuerpo = Json.Document (tokenResponse),
resultado = si (Record.HasFields (body, {«error», «error_description»})) entonces
error Error.Record (cuerpo[error], cuerpo[error_description], cuerpo)
demás
cuerpo
en

resultado

******************

Creo que estoy fallando aquí en rojo:

oauth_failure_pt.png

ImkeF

En respuesta a OneWithQuestion

Básicamente, todo tiene que ir al conector personalizado.

Lo más fácil probablemente sería usar el del repositorio de GitHub y expandirlo más según sea necesario.

ImkeF

En respuesta a OneWithQuestion

No, como intenté expresar a través del título de mi artículo: «Cómo llegar más fuera de su conector personalizado Graph API en Power BI«,

solo cubre algunos casos especiales en los que el conector estándar de GitHub se queda corto 😉

El conector GitHub estándar ya devuelve muchas cosas buenas.

ImkeF

Hola, no puede ejecutar esto como una consulta simple, pero debe usarlo a través de un conector personalizado: https://github.com/Microsoft/DataConnectors/tree/master/samples/MyGraph

algunos consejos adicionales sobre cómo usarlo aquí: https://www.thebiccountant.com/2019/04/17/graph-api-custom-connector-power-bi/

OneWithQuestion

En respuesta a ImkeF

¿Tienes un ejemplo de cómo debería dividirse por casualidad? ¿O podrías publicar una captura de pantalla?

No tengo claro qué partes permanecen en PowerBI y qué partes solo existirán en el conector personalizado.

ImkeF

En respuesta a OneWithQuestion

Básicamente, todo tiene que ir al conector personalizado.

Lo más fácil probablemente sería usar el del repositorio de GitHub y expandirlo más según sea necesario.

OneWithQuestion

En respuesta a ImkeF

Ah, interesante. Pensé que se necesitarían algunas partes para permanecer en PBI como M o lo que sea.

Entonces, ¿puedo simplemente compilar el conector del cliente desde GitHub y luego usarlo en PBI y comenzar a consumir datos? ¿No tengo que usar el código M del artículo de ejemplo?

ImkeF

En respuesta a OneWithQuestion

No, como intenté expresar a través del título de mi artículo: «Cómo llegar más fuera de su conector personalizado Graph API en Power BI«,

solo cubre algunos casos especiales en los que el conector estándar de GitHub se queda corto 😉

El conector GitHub estándar ya devuelve muchas cosas buenas.

Deja un comentario

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