Forum Discussion
How to use the Power Bi Rest Api without the refreshtoken?
I have a powershell script which is using the Power Bi Rest Api. For the authentication they use some strange solution. They capture the refresh token from the browser and save it in a txt file. Than there is some algoritme which gets a token by the refresh token in the txt file. I dont like this ugly solution.
How can I use the Power Bi Rest Api without this ugly refreshtoken solution? I would like to run this script in an Azure function.
I would for example run this rest api:
https://api.powerbi.com/v1.0/myorg/groups/{groupId}/dataflows/{dataflowId}/transactions
5 Replies
- lbendlinSuper User
Ask for a bog standard auth token each time before your API call. You need to have an app registered with the required scope, client secret etc.
- lbendlinSuper User
for example
# Calls the Active Directory Authentication Library (ADAL) to authenticate against AAD function GetAuthToken { if(-not (Get-Module AzureRm.Profile)) { Import-Module AzureRm.Profile } $clientId = "xxx" $redirectUri = "urn:ietf:wg:oauth:2.0:oob" $resourceAppIdURI = "https://analysis.windows.net/powerbi/api" $authority = "https://login.microsoftonline.com/common/oauth2/authorize"; $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority $authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId, $redirectUri, "Auto") return $authResult } # Get the auth token from AAD $token = GetAuthToken
- KEMKEMRegular Visitor
I dont understand what you mean. Please share some documentation or code snipped.
- lbendlinSuper User
The code I posted will allow you to receive an auth token without any interaction, as often as needed (I call it before each REST API call). No need for a refresh token. Efficiency be damned.