#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 раз, когда я пробовал это, ха-ха). Большое вам спасибо!