microsoftgraph / microsoftgraph/msgraph-sdk-java
Fetching allMembers fails for public and private channels
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Java
- Estrelas
- 444
- Forks
- 154
- Merge médio
- 18h 28min
- PRs com merge (30d)
- 4
Descrição
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
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pela reprodução em Java no issue e inspecione AllMembersRequestBuilder.get; em seguida, compare os caminhos de requisição allMembers e members gerados para canais públicos, privados e compartilhados. Confirme o comportamento em relação ao endpoint allMembers documentado e determine se a discrepância está na requisição do SDK ou no serviço; considera-se concluído quando os tipos de canal que falham forem tratados de forma consistente ou quando o problema for claramente identificado como sendo do lado do serviço.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- java
- Domínio
- api
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100