Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago

¿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:

jwillis07_0-1623009985613.png

jwillis07_1-1623010037980.png

*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,

jwillis07_2-1623010348372.png

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 ...

jwillis07_2-1623010348372.png

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

  • 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 😞

  • 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.

    v-henryk-mstf_2-1623309341212.png

    v-henryk-mstf_0-1623309205142.png

    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.

  • ¿Resolviste el problema? Estoy recibiendo el mismo error. Estoy buscando la solución a este problema también.

  • 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's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        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.