Uso de PowerShell y la API REST para almacenar JSON sin formato

Un usuario Pregunto ✅

StevieBleeds

Hola,

¿Esperando que alguien pueda señalarme en la dirección correcta, por favor? He estado tratando de averiguar cómo volcar el contenido de un URI (https://reports.office.com/pbi/v1.0/ / TenantProductUsage) en un archivo JSON con un Runbook de Azure.

He creado un registro de la aplicación Power BI y he intentado usarlo para crear el token de autorización, pero todo lo que obtengo es un error en el que se devuelve el contenido de una instancia del navegador que muestra que las cookies están deshabilitadas y no los datos JSON sin procesar. .

Puedo navegar hasta el URI usando un navegador, autenticarme y ver el JSON sin procesar, simplemente parece que no puedo transmitir los datos.

Aquí está el 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

¿Algunas ideas?

Jayendran

Hola @StevieBleeds

Estaba intentando reproducir su problema, ¿puedo saber cuáles fueron los Permisos de API que proporcionó para su aplicación registrada?

StevieBleeds

En respuesta a Jayendran

Hola @Jayendran

Gracias, estoy usando la API del servicio Power BI con todos los permisos habilitados.

Jayendran

En respuesta a StevieBleeds

Hola @StevieBleeds,

Verifiqué el comportamiento, como mencionaste, esta API solo funciona en el navegador donde tenemos que firmar con la cuenta de administrador global para obtener el resultado en el navegador.

Sin embargo, cuando probé con el registro de la aplicación, con todos los permisos de PowerBI y también el Graph API-> Reports.Read.All No pude obtener la respuesta, usando el violinista que siempre obtengo Código de error 302, mensaje = Se ha denegado la autorización para esta solicitud.

Después de ver el documento oficial, supe que esta API todavía está en BETA y no es compatible con la producción.

Capture.JPG

StevieBleeds

En respuesta a Jayendran

Gracias por investigar, @Jayendran

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *