Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Conectarse a una API que usa OAuth con Power Query

Hola a todos

Estoy tratando de ingerir datos de esta API: https://api.nsw.gov.au/Product/Index/22

El sitio le permite probar los puntos de conexión en el explorador y obtengo una respuesta válida con las credenciales de prueba.

Puedo obtener el token de acceso en Power Query. Pero la siguiente solicitud que usa el token de acceso no parece funcionar. Power BI Desktop me dice que las credenciales utilizadas no son válidas...

M script a continuación... cualquier ayuda sería muy apreciada.

//https://api.nsw.gov.au/Product/Index/22
//Visit the site above and click on 'Sandbox and doc'
//This will present test credentials to try the endpoint

let
    testAPIKey = "1MYSRAx5yvqHUZc6VGtxix6oMA2qgfRT",
    testAPISecret = "BMvWacw15Et8uFGF",

    // Concatenates the test Key & Secret and converts to base64
    authKey = "Basic " & Binary.ToText(Text.ToBinary(testAPIKey & ":" & testAPISecret),0),

    url = "https://api.onegov.nsw.gov.au/oauth/client_credential/accesstoken",
    // Make a POST request to obtain a bearer token
    GetJson = Web.Contents(url,
        [
            Headers = 
                [
                #"Authorization"=authKey,
                #"Content-Type"="application/json"
                ],
            Content = Text.ToBinary("grant_type=client_credentials") 
        ]
    ),

    // Get the bearer token from the response
    AccessToken = Text.From(GetJson),

    GetJsonQuery = 
    Web.Contents("https://api.onegov.nsw.gov.au/FuelPriceCheck/v2/fuel/prices",
        [
        Headers=
            [
            #"Authorization"="Bearer " & AccessToken, 
            #"Content-Type"="application/json; charset=utf-8",
            #"apikey"=testAPIKey,
            #"Accept"="application/json",
            #"transactionid"="1",
            #"requesttimestamp"= DateTime.ToText(DateTime.LocalNow(), "dd/MM/yyyy hh:mm:ss tt")
            ]
        ]
    ),
    FormatAsJsonQuery = Json.Document(GetJsonQuery)
in
    FormatAsJsonQuery

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @mark-

Ese sitio web del gobierno de NSW es demasiado difícil de usar. Me sigue dando errores tratando de acceder a él, así

apierr.png

Cuando genero un token de acceso en el sitio web y luego lo uso desde el mismo sitio web me dice que el token de acceso no es válido.

Generar un token de acceso

apires.png

Realizar una llamada a la API

apicall.png

Compruebe la respuesta

apiresp2.png

Si el token de acceso que el sitio en sí está generando se rechaza, entonces no hay mucha esperanza. Estoy recibiendo los mismos errores en Cartero.

Si yo fuera usted, le preguntaría al sitio web que apoye cuál es el problema al final.

saludos

Phil

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola

A pesar de que este hilo es viejo. Gracias por el ejemplo casi funcional de este post.

yo he sustituido

AccessToken = Text.From(GetJson)

con

AccessToken = Json.Document(GetJson)[access_token]
Pasar este AccessToken como portador funciona para mí.
Espero que esto ayude a otros en la misma situación,
Udo

Syndicate_Admin
Administrator
Administrator

No @mark-

Ese sitio web del gobierno de NSW es demasiado difícil de usar. Me sigue dando errores tratando de acceder a él, así

apierr.png

Cuando genero un token de acceso en el sitio web y luego lo uso desde el mismo sitio web me dice que el token de acceso no es válido.

Generar un token de acceso

apires.png

Realizar una llamada a la API

apicall.png

Compruebe la respuesta

apiresp2.png

Si el token de acceso que el sitio en sí está generando se rechaza, entonces no hay mucha esperanza. Estoy recibiendo los mismos errores en Cartero.

Si yo fuera usted, le preguntaría al sitio web que apoye cuál es el problema al final.

saludos

Phil

Muchas gracias por su ayuda Philip. Me pondré en contacto con su apoyo.

Syndicate_Admin
Administrator
Administrator

No @mark-

Estoy recibiendo el mismo error, pero no puedo ver nada malo con su código.

Incluso me inscribí en un recuento con el sitio web y creé myown key/secret y puedo obtener un Access Token OK, pero auth a la API real está fallando.

Lo revisaré en Postman y veré qué está pasando.

saludos

Phil

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.