Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago

Using previously retrieved refresh token to get next token

Hi, 

I'm facing the situation where I need to use previously retrieved refresh_token  to ask for new revresh token in Jira Tempo data query. 

Script below works fine in case I enter refresh token manually (line- refresh_token = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"],)

In real world it should change dynamically so that previously retrieved refresh token is used to ask next one. 

I tried to substitute this line with reference to relevant field in the same table (  refresh_token = Q2{4}[Value],  Q2 is query name) and during this I will get error "Expression.Error: A cyclic reference was encountered during evaluation." - what is understandable as I refer to the same table.

 

Any ideas how to resolve this issue? I have not find any way to store this value separately in Power Query or in Parameters. Any way of using variables here?

 

__________________________________________________________________________________________________

let
url = https://api.tempo.io/oauth/token/,
headers = [#"Content-Type" = "application/x-www-form-urlencoded", #"Accept" = "*/*"],

postData = [grant_type = "refresh_token",
client_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
client_secret = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
redirect_uri = https://cccccccccc.ee,
refresh_token = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"],

response = Json.Document(Web.Contents(url,
[
Headers = headers,
Content = Text.ToBinary(Uri.BuildQueryString(postData))
])),
#"Converted to Table" = Record.ToTable(response)
in
#"Converted to Table"

____________________________________________________________________________________________

 

1 Reply

  • Neither Power BI nor Power Query have any memory.  Whenever you hear them say "variable" or "parameter" you need to mentally translate that as "immutable constant"

     

    The only way I know how to handle this is to brute force it and ask for the initial token over and over again, completely ignoring the refresh tokens.