Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
StevieBleeds
New Member

Using PowerShell and the REST API to store raw JSON

Hey there,

 

Hoping someone can point me in the right direction please? I've been trying to figure out how to dump the contents of a URI (https://reports.office.com/pbi/v1.0/<tenantid>/TenantProductUsage) into a JSON file using an Azure Runbook.

 

I've created a Power BI app registration and have tried using that to create the authorisation token, but all I'm getting is an error where the contents of a browser instance are being returned showing that cookies are disabled and not the raw JSON data.

 

I can navigate to the URI using a browser, authenticate and see the raw JSON, I just can't seem to stream the data.

 

Here is the PowerShell

 

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# Token credentials
$tenant="<tenant>.onmicrosoft.com" 
$clientID="" 
$clientSecret=''
$token=$null
       
# Create access token
$Token = Invoke-RestMethod -Uri https://login.microsoftonline.com/$tenant/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://graph.microsoft.com/"; "client_id" = $ClientID; "client_secret" = $ClientSecret}

$Headers = @{
    'authorization'="Bearer $($Token.access_token)"
}

#SPECIFY WHICH ENDPOINT TO QUERY
$uri = 'https://reports.office.com/pbi/v1.0/<tenant>/TenantProductUsage'

#CONNECT TO THE GRAPH API USING REST METHOD
$result = Invoke-WebRequest -Headers $headers -Uri $uri -Method Get

#CONVERT THE STREAM RESULT TO AN ARRAY
$resultarray = ConvertFrom-Json -InputObject $result

 

Any ideas?

 

 

4 REPLIES 4
Jayendran
Solution Sage
Solution Sage

Hi @StevieBleeds 

I was trying to reproduce your issue, may i know what were the API Permissions you provided for your Registrated App ?

 

 

 

 

Hi @Jayendran 

 

Thanks, I'm using the Power BI Service API with all permissions enabled.

Hi @StevieBleeds ,

 

I've checked the behaviour, as you mentioned this API is only working in the browser where we have to sign using the Global Admin Account to get the result back in browser.

 

However when I tried with the App registration, with all PowerBI permissions and also the Graph API->Reports.Read.All I couldn't able to get the response, using the fiddler I always getting Error Code 302 , message=Authorization has been denied for this request.

 

After seeing the official document I came to know that this API is still in BETA and not supported for the production

Capture.JPG

Thanks for investigating, @Jayendran 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.