Microsoft Graph API - получение сообщения из общего почтового ящика - запрещенная ошибка
У меня есть служба демона, которая получает access_token, используя имя пользователя / пароль пользователя (user1@domain.com) [Используя Microsoft.Identity.Client.PublicClientApplication и затем используя AcquireTokenByUsernamePasswordAsync для получения токена доступа).
Приложение Azure имеет область действия "Mail.Read", и делегированное разрешение предоставлено (для этого не требуется согласия администратора).
Я могу успешно получить подписку на почтовый ящик user1@domain.com, таким образом получая уведомления для писем.
Я использую Graph-клиент для подписки.
var subscription = new Subscription
{
Resource = "users/user1@domain/mailFolders('Inbox')/messages",
ChangeType = "created",
NotificationUrl = "NotificationUrl",
ClientState = Guid.NewGuid().ToString(),
ExpirationDateTime = DateTime.UtcNow + new TimeSpan(0, 0, 15, 0)
};
user2@domain.com поделился своим почтовым ящиком с user1@domain.com. В приложении Azure я добавил область "Mail.Read.Shared", а также удостоверился, что нажал "Предоставить разрешение" (опять же, не требуется согласие администратора).
Однако даже после этого я получаю уведомления только для user1@domain.com, а не для user2@domain.com
Затем я наткнулся на https://github.com/microsoftgraph/microsoft-graph-docs/blob/master/concepts/outlook-share-messages-folders.md
Однако даже если я пытаюсь получить подписку, изменив свойство ресурса в вышеупомянутой подписке на "users/user2@domain/mailFolders('Inbox')/messages" - я получаю следующую ошибку
Код: ExtensionError Сообщение: Операция: Создать; Исключение: [Код статуса: запрещено; Причина: запрещено]
Интересно, что если я использую access_token, полученный указанным выше способом, чтобы инициировать запрос на получение адреса ниже, для Почтальона, я могу читать почту общего почтового ящика! ( https://graph.microsoft.com/v1.0/users/user2@domain.com/mailFolders ("Входящие")/messages)
Также, когда я попробовал то же самое в графическом обозревателе после изменения разрешений и предоставления согласия для Mail.Read.Shared, я могу читать письма.
Однако я получаю то же сообщение об ошибке, когда пытаюсь получить подписку с помощью Почтальона.
Нужна помощь по следующим вопросам:
- Какие изменения необходимы для получения подписки на user2?
- Правильно ли предположить, что я могу получить access_token для user1, а затем мне нужно настроить разные подписки для user1 и user2, чтобы получать уведомления, используя общий access_token?