Forum Discussion
PowerBI Power Query "We cannot apply field access to the type Binary"
This is the function that I've defined, I've removed the token and the directory name for security purposes:
let gettoken=() =>
let
JWT="<my_token>",
Data= Web.Contents("https://api.github.com/app/installations/<id>/access_tokens",
[
Headers=[
#"Accept"="application/vnd.github+json",
#"Authorization"="Bearer" & JWT,
#"X-GitHub-Api-Version"="2022-11-28",
#"Content-Type"="application/x-www-form-urlencoded"
]])
,token=Text.FromBinary(Json.Document(Data[token]))
in
token
in gettokenNo syntax errors, but when I run it...
An error occurred in the ‘get_token’ query. Expression.Error: We cannot apply field access to the type Binary.
Details:
Value=[Binary]
Key=tokenAny help would be really appreciated.
What's the Text.FromBinary for? Not needed.
token=Json.Document(Data)[token]
4 Replies
- lbendlin
Super User
What's the Text.FromBinary for? Not needed.
token=Json.Document(Data)[token]
- heriberto_mbFrequent Visitor
Thank you lbendlin!
That worked, I have one more doubt...I'm getting the following error
An error occurred in the ‘get_token’ query. Expression.Error: The 'Authorization' header is only supported when connecting anonymously. These headers can be used with all authentication types: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Cache-Control, Content-Type, If-Modified-Since, Prefer, Range, Referer
However, if I select to login anonymously... it wants my credentials:
My code:
let gettoken=() => let JWT="<my_token>", Data= Web.Contents("https://api.github.com/app/installations/<id>/access_tokens", [ Headers=[ #"Accept"="application/vnd.github+json", #"Authorization"="Bearer" & JWT, #"X-GitHub-Api-Version"="2022-11-28", #"Content-Type"="application/x-www-form-urlencoded" ]]) ,token=Json.Document(Data)[token] in token in gettokenIf needed I can open another post.
- lbendlin
Super User
Have you considered using the github connector in Power Query?
- heriberto_mbFrequent Visitor
It works now! Here is the adjustment I did:
let gettoken=() =>
let
JWT="<my_token>",
vContent=Text.ToBinary("{""query"": ""{ organization(login: \""github\"") { name }}""}"),
Data= Web.Contents("https://api.github.com/app/installations/<id>/access_tokens",
[
Headers=[
#"Accept"="application/vnd.github+json",
#"Authorization"="Bearer " & JWT,
#"X-GitHub-Api-Version"="2022-11-28",
#"Content-Type"="application/x-www-form-urlencoded"
],Content=vContent])
,token=Json.Document(Data)[token]
in
token
in gettoken