Ваша проблема в том, что вы обращаетесь к "бета" api , но используете путь к производственной базе URL.
Требуется ЛЮБОЕ из следующих разрешений (т.е. или нет и):
- ChannelMessage.Read.Group (RS C) ИЛИ
- ChannelMessage.Read.All OR
- Group.Read.All OR
- Group.ReadWrite.All
Поскольку у вас есть Group.Read.All, это ВСЕ, что вам нужно для разрешений.
Что вам нужно сделать, это измените базовый URL-адрес на бета-версию API:
graphClient.BaseUrl = "https://graph.microsoft.com/beta";
ОБНОВЛЕНО:
Поскольку теперь вы говорите, что получаете ошибку «Запрещено», я думаю, у вас также есть проблема согласия.
Я предполагаю, что вы создали и предоставили свое приложение в одном клиенте, но вы пытаетесь получить доступ к данным в другом клиенте. Это даст вам запрещенные ошибки. т.е. вы создали и дали согласие на использование клиента учетной записи dev azure и пытаетесь получить доступ к своему рабочему клиенту.
В такой ситуации вам необходимо: * Убедитесь, что настроенное вами приложение azure мультитенантное * Ваше приложение должно быть согласовано целевым клиентом
Если вы сделаете это и используете конечную точку бета, я ожидаю, что ваш примерный код будет начать работать.
Update2:
Наконец-то дошел до попытки составить список сообщений с контекстом приложения, как вы выше, и я получаю такую же Запрещенную ошибку из бета-API. С точки зрения пользователя он работает нормально. Итак, ваш ответ будет заключаться в использовании контекста пользователя, а не контекста приложения для доступа к этому API.
Похоже, вы нажимаете Защищенный API . Поэтому, если вы хотите использовать этот API из контекста приложения, вам нужно будет отправить запрос на разрешение доступа к нему.