В одном из моих решений я намеревался создать подписку Microsoft Graph на ресурс событий группового календаря из функции Azure, аутентифицированной с учетными данными клиента приложения
Разрешения, предоставленные участнику приложения, равны Calendars.ReadWrite
и Group.ReadWrite.All
Таким образом, полезная нагрузка вызова выглядит как
{
"changeType": "updated",
"resource": "groups/a619f4ce-7538-47c3-8feb-f5df845c5e96/calendar/events",
"expirationDateTime": "2020-03-20T00:00:00Z",
"notificationUrl": "https://4ed2bafd.ngrok.io/api/Webhook"
}
И полученная ошибка 400 составляет
Exception: Error: Error making HttpClient request in queryable [400] Bad Request ::> {
[18/03/2020 19:19:39] "error": {
[18/03/2020 19:19:39] "code": "InvalidRequest",
[18/03/2020 19:19:39] "message": "Subscription to a group's 'conversations' is not supported with Application-level permissions.",
[18/03/2020 19:19:40] "innerError": {
[18/03/2020 19:19:40] "request-id": "6337f57d-a266-4947-9f3b-289c8d8c9c9e",
[18/03/2020 19:19:40] "date": "2020-03-18T19:19:40"
[18/03/2020 19:19:40] }
[18/03/2020 19:19:40] }
[18/03/2020 19:19:40] }
Тот же самый вызов работает хорошо при создании подписки с помощью Проводника графиков (поэтому мой зарегистрированный пользователь является частью этой группы).
Я понимаю, что не могу использовать разрешения только для приложений для получения разговоров из групп и есть ограничения на общие объекты внешнего вида, но я мог бы ожидать, что смогу подписаться на определенные события календаря группы (которые, кстати, не являются «разговорами», как указано в сообщении об ошибке). Это возможно, или это должно быть сделано, может быть, по-другому?
Ура,
Янник