Несоответствие в MS Graph, когда я получаю каналы команды

#java #microsoft-graph-api

#java #microsoft-graph-api

Вопрос:

Я использую 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();
}
 

Кто-нибудь сталкивался с этой проблемой? Что может быть корнем проблемы и как я могу найти лучшее решение?

Ответ №1:

Я бы позаботился о том, чтобы у вошедшего в систему пользователя были необходимые области / разрешения. Также они являются частью одной из этих ролей (глобальные администраторы / администраторы служб Microsoft Teams). Чтобы они могли получить доступ к командам, членами которых они также не являются. Таким образом, вы можете получить СТАНДАРТНЫЕ ЧАСТНЫЕ каналы без каких-либо проблем.

Комментарии:

1. Пользователь, которого я использую, является администратором конкретной команды и имеет разрешения, которые я видел на странице Ms graph. И опять же я не всегда пользуюсь частными каналами

2. Я говорю о глобальных ролях Команды / Организации, а не только администратора данной команды.

3. Хм, хорошо, я попробую и дам вам знать. Спасибо, сэр.

4. Конечно, пожалуйста, продолжайте и протестируйте это!!

5. похоже, что так оно и есть. Когда я обновил своего пользователя до «владельца» всей команды, я получал каждый канал каждый раз (по крайней мере, 20 раз, когда я пробовал это, ха-ха). Большое вам спасибо!