Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接收团队频道时MS图形中的不一致性_Java_Microsoft Graph Api - Fatal编程技术网

Java 接收团队频道时MS图形中的不一致性

Java 接收团队频道时MS图形中的不一致性,java,microsoft-graph-api,Java,Microsoft Graph Api,我正在使用java在MS Graph中实现一个通知系统。我需要接收属于特定团队的每个频道。当我只与标准频道(公共)合作时,一切都正常工作。虽然当我开始创建一些私人频道时,我遇到了一个奇怪的情况。有时MS Graph会返回标准通道和专用通道,有时只返回标准通道。我做了一个工作,要求频道很多次,但这既不是更快或最好的解决方案,再次它的纯粹运气是我会得到每一个频道 以下是我当前用于获取频道的代码: private static List<Channel> getTeamChannels(T

我正在使用java在MS Graph中实现一个通知系统。我需要接收属于特定团队的每个频道。当我只与标准频道(公共)合作时,一切都正常工作。虽然当我开始创建一些私人频道时,我遇到了一个奇怪的情况。有时MS Graph会返回标准通道和专用通道,有时只返回标准通道。我做了一个工作,要求频道很多次,但这既不是更快或最好的解决方案,再次它的纯粹运气是我会得到每一个频道

以下是我当前用于获取频道的代码:

private static List<Channel> getTeamChannels(Team team, String accessToken) {
  ensureGraphClient(accessToken);
  IChannelCollectionPage channelPage = graphClient.teams(team.id).channels().buildRequest().get();
  List<Channel> chan = channelPage.getCurrentPage();
  IChannelCollectionPage channelPage2;
  for (int i = 0; i < 10; i++) {
     channelPage2 = graphClient.teams(team.id).channels().buildRequest().get();
     if (channelPage2.getCurrentPage().size() > chan.size()) {
        return channelPage2.getCurrentPage();
     } else if (channelPage2.getCurrentPage().size() < chan.size()) {
        return chan;
     }
  }
  return channelPage.getCurrentPage();
}
private static List getTeamChannels(团队、字符串访问令牌){
客户端(accessToken);
IChannelCollectionPage channelPage=graphClient.teams(team.id).channels().buildRequest().get();
List chan=channelPage.getCurrentPage();
i通道采集第2页;
对于(int i=0;i<10;i++){
channelPage2=graphClient.teams(team.id).channels().buildRequest().get();
if(channelPage2.getCurrentPage().size()>chan.size()){
返回channelPage2.getCurrentPage();
}else if(channelPage2.getCurrentPage().size()

有人遇到过这个问题吗?这可能是问题的根源,我如何才能找到更好的解决方案?

我会确保登录的用户具有必要的范围/权限。他们也是这些角色之一(全局管理员/Microsoft团队服务管理员)的一部分。这样他们就可以访问他们不是成员的团队。这样,您就可以毫无问题地获得标准的私人频道。

我使用的用户是特定团队的管理员,拥有我在Ms graph页面上看到的权限。再说一次,我并不总是得到私人渠道。我说的是团队/组织的全球角色,而不仅仅是给定团队的管理员。嗯,好的,我会试试,我会让你知道的。谢谢,先生。当然可以。请继续测试!!看来是这样。当我将我的用户升级为整个团队的“所有者”时,我每次都能获得每个频道(至少我试了20次,哈哈)。多谢各位!