Forum Discussion
How to get data from rest API with authentication token which expires in 30 mins?
- Anonymous6 years ago
i have the solution.
as every API might be different in context to headers passed, ill share what worked for me.
let
url = "https://api.abc.com/oauth2/token", //example for link
body = "{ ""client_id"": ""123abc123"", ""client_secret"": ""fgfgfdsefc""}", //123abc123 is client_id and fgfgfdsefc is client_secret
Parsed_JSON = Json.Document(body),
BuildQueryString = Uri.BuildQueryString(Parsed_JSON),
polichu = Json.Document(Web.Contents(url,[Headers = [#"Content-Type"="application/x-www-form-urlencoded"], Content = Text.ToBinary(BuildQueryString) ] )),
token = List.First( Record.FieldValues(polichu)), //this gave me a list of 3 records having token and other things so i had to take the first one which was token
bearer = "bearer ",
access_token = bearer & token, //combining it to text so the key is actually "bearer jsofsojdf" (something like this)
Source = Json.Document(Web.Contents("https://api.abc.com/devices/entities/devices/v1?ids=123123123", [Headers=[Authorization=access_token, Accept="application/json"]])),
resources = Source[resources],
resources1 = resources{0},
#"Converted to Table1" = Record.ToTable(resources1),
#"Transposed Table" = Table.Transpose(#"Converted to Table1"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Expanded meta" = Table.ExpandRecordColumn(#"Promoted Headers", "meta", {"version"}, {"meta.version"})
in
#"Expanded meta"as i have attached my api working in Postman, this is a bearer token and using client id and secret - token was generated and using this token alone, i had to push it into another link to get the data. and this is how it works.
hope this works out to everybody if requirement matches.
Hi Anonymous ,
You can refer to this:https://community.powerbi.com/t5/Desktop/Issue-with-getting-data-via-API-with-bearer-token/td-p/126232
Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi V-lianl-msft ,
i tried everything in the solutions but somewhere its giving me eroors.
to give a more insight of my requirement,
my api contains - client_id and client_secret only.
using this i can get the bearer token.
when i pass this bearer token in 'Header' as Authorization - it gives me data. there is no Auth 2.0 authorization working here.
Kindly Help