microsoftgraph / microsoftgraph/msgraph-sdk-java

Fetching allMembers fails for public and private channels

Abierto
#2,438 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

status:waiting-for-triage type:bug
Lenguaje dominante
Java
Estrellas
444
Forks
154
Merge medio
18 h 28 min
PR fusionados (30 d)
4

Descripción

Describe the bug

According to the documentation the allMembers endpoint can be used for any channel type. This can be confirmed using the Graph Explorer or manualy invoking that endpoint.

However, when using the SDK to fetch all members for any channel that is not shared the request fails.

com.microsoft.graph.models.odataerrors.ODataError: Failed to execute GetThreadRosterAsync.
	at com.microsoft.graph.models.odataerrors.ODataError.createFromDiscriminatorValue(ODataError.java:36)
	at com.microsoft.kiota.serialization.JsonParseNode.getObjectValue(JsonParseNode.java:212)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.lambda$throwIfFailedResponse$0(OkHttpRequestAdapter.java:706)
	at com.microsoft.kiota.ApiExceptionBuilder.<init>(ApiExceptionBuilder.java:26)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.throwIfFailedResponse(OkHttpRequestAdapter.java:705)
	at com.microsoft.kiota.http.OkHttpRequestAdapter.send(OkHttpRequestAdapter.java:307)
	at com.microsoft.graph.teams.item.channels.item.allmembers.AllMembersRequestBuilder.get(AllMembersRequestBuilder.java:102)
	at com.microsoft.graph.teams.item.channels.item.allmembers.AllMembersRequestBuilder.get(AllMembersRequestBuilder.java:88)
...
Expected behavior

The request should work for any channel type (as it does when using the members() endpoint insted of allMembers().

How to reproduce
graphClient.teams()
    .byTeamId(team.getId())
    .channels()
    .byChannelId(channel.getId()) //use a private or public channel here
    .allMembers()
    .get(); //the error occurs at this point unless the provided channel has MembershipType.Shared
SDK Version

6.45.0

Latest version known to work for scenario above?

No response

Known Workarounds

Check the Channel.getMembershipType() and fallback to members() if the channel is not shared

Debug output

No response

Configuration

No response

Other information

No response

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con la reproducción en Java del issue e inspecciona AllMembersRequestBuilder.get. Después, compara las rutas de solicitud allMembers y members generadas para canales públicos, privados y compartidos. Confirma el comportamiento con el endpoint allMembers documentado y determina si la discrepancia está en la solicitud del SDK o en el servicio; se considera terminado cuando los tipos de canal que fallan se gestionan de forma coherente o el problema se identifica claramente como del lado del servicio.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
api
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.