Microsoft Graph API - получение сообщения из общего почтового ящика - запрещенная ошибка - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть служба демона, которая получает access_token, используя имя пользователя / пароль пользователя (user1@domain.com) [Используя Microsoft.Identity.Client.PublicClientApplication и затем используя AcquireTokenByUsernamePasswordAsync для получения токена доступа).

Приложение Azure имеет область действия «Mail.Read», и делегированное разрешение предоставлено (для этого не требуется согласия администратора).

Я могу успешно получить подписку на почтовый ящик user1@domain.com, таким образом получая уведомление дляmails.

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

Однако даже если я попытаюсь получить подписку, изменив свойство ресурса в вышеупомянутой подписке на «пользователи /user2 @ domain / mailFolders ('Inbox') / messages "- я получаю следующую ошибку

Код: ExtensionError Сообщение: Операция: Создать;Исключение: [Код статуса: запрещено;Причина: Запрещено]

Интересно, что если я использую access_token, полученный указанным выше способом, для инициирования запроса на получение ниже URL-адреса на Почтальоне, я могу читать почту общего почтового ящика!(https://graph.microsoft.com/v1.0/users/user2@domain.com/mailFolders('Inbox')/messages)

Также, когда я пытался сделать то же самое в графическом обозревателе после изменения разрешений и предоставления согласия для Mail.Read.Shared, я могу читать письма.

Однако я получаю то же сообщение об ошибке, когдаЯ пытаюсь приобрести подписку с помощью Почтальона.

Требуется помощь по следующим вопросам:

  1. Какие изменения необходимы для получения подписки на user2?
  2. Правильно ли предположитьчто я могу получить access_token для user1, а затем мне нужно настроить разные подписки для user1 и user2, чтобы получать уведомления, используя общий access_token?
...