REST con informes bien con grupos 403 Error prohibido

Un usuario Pregunto ✅

Ven

Hola

He intentado seguir los ejemplos proporcionados en GitHub https://github.com/Microsoft/PowerBI-CSharp Estoy usando el código de muestra para la ‘integración-informe-aplicación web’ y funciona muy bien, puedo ver los informes de mi espacio de trabajo están bien. Sin embargo, quiero ver la lista de grupos, así que cambio la URL de

https://api.powerbi.com/v1.0/myorg/Reports

Para

https://api.powerbi.com/v1.0/myorg/Groups

Puedo obtener los grupos bien desde el sitio ‘Power BI API’ sin problema, pero cuando intento con C # con la URL ajustada, inicio sesión bien y obtengo lo siguiente

{Código de estado: 403, ReasonPhrase: ‘Forbidden’, Versión: 1.1, Contenido: System.Net.Http.StreamContent, Encabezados:
{
Seguridad de transporte estricta: max-age = 31536000; includeSubDomains
Opciones de X-Frame: denegar
X-Content-Type-Options: nosniff
RequestId: 02152c64-6429-46f2-a717-24af736856b8
Fecha: miércoles, 05 de octubre de 2016 10:17:39 GMT
Servidor: Microsoft-HTTPAPI / 2.0
Longitud del contenido: 0
}} System.Net.Http.HttpResponseMessage

¿Alguna idea de por qué esto me daría este resultado considerando que estaba feliz de recibir los informes?

Ven

En respuesta a Ven

Así que me las arreglé para resolver esto y la respuesta es «Permisos».

Al seguir originalmente el tutorial para la ‘Integración de la aplicación web de informes’, cuando registre la aplicación en Azure AD, obtenga su ‘ID de cliente’ y el ‘Secreto de cliente’ para marcar algunas casillas

Permiso de Azure 1.png

Observe que la casilla «Leer todos los grupos» no está marcada.

Así que volví y registré la aplicación esta vez con todas las casillas marcadas.

Permiso de Azure 2.png

Después de actualizar la ‘ID de cliente’ y el ‘Secreto de cliente’ en mi código, ahora puedo leer la lista de grupos con el punto final:

https://api.powerbi.com/v1.0/myorg/Groups


He intentado seguir los ejemplos proporcionados en GitHub https://github.com/Microsoft/PowerBI-CSharp Estoy usando el código de muestra para la ‘integración-informe-aplicación web’ y funciona muy bien, puedo ver los informes de mi espacio de trabajo están bien. Sin embargo, quiero ver la lista de grupos, así que cambio la URL de

https://api.powerbi.com/v1.0/myorg/Reports

Para

https://api.powerbi.com/v1.0/myorg/Groups

Puedo obtener los grupos bien desde el sitio ‘Power BI API’ sin problema pero cuando intento con C # con la URL ajustada, inicio sesión bien luego obtén lo siguiente

¿Alguna idea de por qué esto me daría este resultado considerando que estaba feliz de recibir los informes?


@Ven

La muestra es una demostración de cómo incrustar un informe, ¿qué hizo después de cambiar la URL? Si desea obtener los informes de un grupo específico, la URL sería algo como

https://api.powerbi.com/v1.0/myorg/ Grupos / {groupid} /Informes

Ven

En respuesta a Eric_Zhang

Hola Eric_Zhang

Gracias por la respuesta.

Sí, puedo obtener los informes de un grupo con el ID de grupo según su punto final de ejemplo

https://api.powerbi.com/v1.0/myorg/ Grupos / {groupid} /Informes

Sin embargo, la API de Power BI dice que debería poder obtener una lista de grupos con lo siguiente

https://api.powerbi.com/v1.0/myorg/Groups

Probé el código de ejemplo proporcionado por el sitio «API de Power BI»

using System;
using System.Net.Http;

var baseAddress = new Uri("https://api.powerbi.com/");

using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{

  httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "Bearer tokenString");
  
  using(var response = await httpClient.GetAsync("v1.0/myorg/groups"))
  {
 
        string responseData = await response.Content.ReadAsStringAsync();
  }

Sin embargo, obtengo un error para la autenticación sobre la necesidad de proporcionar el secreto del cliente que actualmente estoy tratando de averiguar cómo proporcionar en una aplicación de consola.

Parece que instalar el paquete NuGet usando lo siguiente según las instrucciones en el sitio de Power BI Developer en la parte inferior

Paquete de instalación Microsoft.IdentityModel.Clients.ActiveDirectory

Luego da un problema de compilación que la clase AuthenticationContext no contiene un método llamado AcquireToken. Esto significa que el código del sitio para desarrolladores de Power BI debe actualizarse para mostrar cómo incluir el ‘secreto del cliente’.

Parece que no puedo encontrar un ejemplo de código que funcione para autenticarme con los últimos paquetes y obtener una lista de los Grupos.

Esas son las dificultades de mi mañana. Eric, ¿cómo va la tuya?

Ven

En respuesta a Ven

Así que me las arreglé para resolver esto y la respuesta es «Permisos».

Al seguir originalmente el tutorial para la ‘Integración de la aplicación web de informes’, cuando registre la aplicación en Azure AD, obtenga su ‘ID de cliente’ y el ‘Secreto de cliente’ para marcar algunas casillas

Permiso de Azure 1.png

Observe que la casilla «Leer todos los grupos» no está marcada.

Así que volví y registré la aplicación esta vez con todas las casillas marcadas.

Permiso de Azure 2.png

Después de actualizar la ‘ID de cliente’ y el ‘Secreto de cliente’ en mi código, ahora puedo leer la lista de grupos con el punto final:

https://api.powerbi.com/v1.0/myorg/Groups

Deja un comentario

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