Forum Discussion
Refresh token api call
- 6 years ago
Hi Anonymous,
I stumbled over a similar problem as you last year. I solved my api connection by buidling a custom data connector.
https://github.com/Microsoft/DataConnectors
With the connector you have a lot of possibilitys for authentication handling:
see: https://docs.microsoft.com/en-us/power-query/handlingauthentication
The custom Connector can be attached to the data gatway from there the api calls are made.
This is not a really easy way for sure but may be a solution.
-------------------------------------------------------------------
Did I answer your question? Mark my post as a solution!
It was useful? Press Thumbs Up! - Anonymous6 years ago
Hi Rainer and everyone,
Thank you for the quick response. Having said this, I was able to solve this one following the below manner.
Regards,
AnandStep one: Create parameters for client_id, client_secret, oauth token, search url, username, password
Step two: a new query with the followinglet //App Details client_id = #"API Key", //<===parameter client_secret = #"API Secret", //<===parameter //Authentication //URI's token_uri = #"Token URL", //<===parameter resource = #"Search URL", //<===parameter //User Details username = username, //<===parameter password = password, //<===parameter tokenResponse = Json.Document(Web.Contents(token_uri, [ Content= Text.ToBinary(Uri.BuildQueryString( [ client_id = client_id ,client_secret=client_secret ,username=username ,password=password ,resource=resource ,grant_type = "password" ])) ,Headers= [Accept="application/json"] , ManualStatusHandling={400} ])), access_token = tokenResponse[access_token], token = "Bearer " & tokenResponse[access_token], GetJsonQuery = Web.Contents("[search url]", [ Headers = [#"Authorization"=token] ] ), FormatAsJsonQuery = Json.Document(GetJsonQuery) in FormatAsJsonQuery
Hi Anonymous,
I stumbled over a similar problem as you last year. I solved my api connection by buidling a custom data connector.
https://github.com/Microsoft/DataConnectors
With the connector you have a lot of possibilitys for authentication handling:
see: https://docs.microsoft.com/en-us/power-query/handlingauthentication
The custom Connector can be attached to the data gatway from there the api calls are made.
This is not a really easy way for sure but may be a solution.
-------------------------------------------------------------------
Did I answer your question? Mark my post as a solution!
It was useful? Press Thumbs Up!
Hi Rainer and everyone,
Thank you for the quick response. Having said this, I was able to solve this one following the below manner.
Regards,
Anand
Step one: Create parameters for client_id, client_secret, oauth token, search url, username, password
Step two: a new query with the following
let
//App Details
client_id = #"API Key", //<===parameter
client_secret = #"API Secret", //<===parameter
//Authentication
//URI's
token_uri = #"Token URL", //<===parameter
resource = #"Search URL", //<===parameter
//User Details
username = username, //<===parameter
password = password, //<===parameter
tokenResponse = Json.Document(Web.Contents(token_uri,
[
Content=
Text.ToBinary(Uri.BuildQueryString(
[
client_id = client_id
,client_secret=client_secret
,username=username
,password=password
,resource=resource
,grant_type = "password"
]))
,Headers=
[Accept="application/json"]
, ManualStatusHandling={400}
])),
access_token = tokenResponse[access_token],
token = "Bearer " & tokenResponse[access_token],
GetJsonQuery = Web.Contents("[search url]",
[
Headers = [#"Authorization"=token]
]
),
FormatAsJsonQuery = Json.Document(GetJsonQuery)
in
FormatAsJsonQuery
- Anonymous5 years agoNot applicable
Hi Anonymous ,
I tried making API call using the provided query after creating the required parameters.
Only change I did is -
grant_type = "client_credentials"
I am getting below error -
P.S - I tried using other methods as well, I am getting same error whichever query I use. Please suggest what am I doing wrong.
Thanks in advance.
- Anonymous5 years agoNot applicable
Hi,
I've seen a similar issue earlier. However, if you refresh all your data the token will get a refresh too helping you to authenticate automatically.
hope this helps.
//A!
- Anonymous5 years agoNot applicable
The refresh is not working as it giving error for credentials. Do you know any other reason it could go wrong.
I have gone thru it, cant seem to find any issue.
Any suggestions are welcome.