Forum Discussion

heriberto_mb's avatar
heriberto_mb
Frequent Visitor
2 years ago
Solved

PowerBI Power Query "We cannot apply field access to the type Binary"

I need a hand trying to find why I am receiving "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 gettoken

No 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=token

Any help would be really appreciated.

  • What's the Text.FromBinary  for?  Not needed.

     

    token=Json.Document(Data)[token]

4 Replies

  • What's the Text.FromBinary  for?  Not needed.

     

    token=Json.Document(Data)[token]
    • heriberto_mb's avatar
      heriberto_mb
      Frequent 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 gettoken

      If needed I can open another post.

       

      • lbendlin's avatar
        lbendlin
        Icon for Super User rankSuper User

        Have you considered using the github connector in Power Query?

  • heriberto_mb's avatar
    heriberto_mb
    Frequent 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