Forum Discussion
¿Cómo autenticar una API de REST en Power BI?
Buenas noches a todos, necesito ayuda y espero haber venido al lugar correcto...
Solo he trabajado con archivos locales o API abiertas, sin embargo, esta vez, estoy tratando de acceder a una API rest, pero actualmente no puedo pasar la autenticación.
La dirección URL de la API es... https://psa.pulseway.com/api/servicedesk/tickets
La documentación de la API se puede encontrar en... https://psa.pulseway.com/api
Dentro de la documentación dice que necesito incluir los siguientes parámetros de encabezado...
Aceptar = aplicación/json
Content-Type = application/x-www-form--urlencoded
grant_type = contraseña
username = Valor de nombre de usuario de usuario autenticado (mi nombre de usuario de Pulseway)
password = Valor de contraseña de usuario autenticado (mi contraseña de Pulseway)
tenant = Valor de inquilino de empresa de usuario autenticado (nombre de inquilino de mi empresa pulseway)
Por lo tanto, en Power BI Desktop, sigo los pasos siguientes:
1. Obtener datos > otros > Web
2. Haga clic en avanzado e ingrese mi URL de API como un todo, no en partes.
3. Agregue los parámetros de encabezado como se mencionó anteriormente, cuando se complete, se ve como el siguiente:
*He dejado mis credenciales en blanco por motivos de seguridad, pero las relleno antes de pasar al siguiente paso
4. Presione OK
5. Entonces consigo un error para autenticar el mensaje como abajo,
6. Como ya he incluido mis credenciales en los encabezados, creo que ahora debería simplemente hacer clic en "Anónimo" y luego en "Conectar" - Solo que esto no funciona y recibo el mismo mensaje de error nuevamente ...
No tengo idea de lo que estoy haciendo mal y me he perdido en la documentación para llegar hasta aquí, así que si alguien puede señalarme en la dirección correcta sería muy apreciado y usted podría simplemente salvar mi trabajo!
Gracias de antemano,
Jasón
7 Replies
- Syndicate_Admin
Administrator
Si alguien incluso tiene algún enlace a tutoriales o cualquier cosa, ayudaría más de lo que sabes.
Simplemente no puedo conseguir mi cabeza alrededor de este 😞
- Syndicate_Admin
Administrator
Hay @jwillis07 ,
Si desea autenticar una API de REST en Power BI. Primero debe borrar el permiso en la configuración del origen de datos, elegir "API web" en lugar de "Anónimo" y, a continuación, intentarlo.
Proporcione los documentos oficiales correspondientes como referencia: conector web de Power Query | Documentos de Microsoft
Si el problema aún no se ha resuelto, proporcione información detallada sobre el error y hágamelo saber inmediatamente. Esperamos su respuesta.
Saludos
henrio
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente. - Syndicate_Admin
Administrator
¿Resolviste el problema? Estoy recibiendo el mismo error. Estoy buscando la solución a este problema también.
- Syndicate_Admin
Administrator
Hola, chicos
Obteniendo el mismo problema que la discusión, usando una API REST con autorización establecida como autenticación básica con nombre de usuario / contraseña y encabezado que incluye clave api, ¿alguien encontró una solución para esto?
Gracias de antemano.
- Syndicate_Admin
Administrator
Lo resolví a través de la aplicación (generaré el token)
- Syndicate_Admin
Administrator
¿Podrías ayudar aquí, en pasos, cómo lo resolviste?
- Syndicate_Admin
Administrator
1. Registre la aplicación en Azure Portal
2. Agregue los permisos a la aplicación mediante la pestaña Permisos de API de uso,
3. Utilice este script para la creación de tokens
4. Para extraer informes para toda la organización,
dejar
token = Access_Token(),encabezados = [
#"Authorization" = "Portador" & token,
#"Content-Type" = "aplicación/json"
],GetPage = (url como texto) como registro =>
dejar
response = Web.Contents(url, [Headers = headers]),
json = Json.Document(respuesta),
datos = json[valor],
nextLink = try Record.Field(json, "@odata.nextLink") de lo contrario null
en
[Datos = datos, Siguiente = nextLink],GetAllPages = (url como texto, acc como lista) =>
dejar
página = GetPage(url),
combinado = List.Combine({acc, page[Data]}),
result = if page[Next] <> null then @GetAllPages(page[Next], combined) else combined
en
resultado✅ Use includeMetadata=true aquí
baseUrl = "https://api.powerbi.com/v1.0/myorg/admin/reports?&includeMetadata=true",allData = GetAllPages(baseUrl, {}),
Informes = Tabla.DesdeRegistros(allData)
en
Informes
5. Cambie la API en el enlace (baseURL) para su requisito.