Мы используем Microsoft Graph API для обработки календаря и почтовых отправлений. мы выбираем элементы из учетной записи office 365, обрабатываем элемент, затем помечаем его как прочитанный и после этого удаляем этот элемент, чтобы он больше не обрабатывался.
В пометке элемент как процесс чтения у нас есть метод ниже
MarkReadMail()
{
var response = graphClient.Me.Messages[itemID].Request().Select("IsRead").GetAsync();
var msg = response.Result;
msg.IsRead = true;
graphClient.Me.Messages[itemID].Request().Select("IsRead").UpdateAsync(msg);
}
MarkReadMail()
отлично работает с основной учетной записью Office 365, но на стороне клиента они использовали корпоративную учетную запись Office 365, выдает следующую ошибку:
Message: Exception occured in method MarkReadMail :Code: ErrorAccessDenied
Message: Access is denied. Check credentials and try again.
Inner error
Stack Trace: at Microsoft.Graph.HttpProvider.<SendAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Graph.BaseRequest.<SendRequestAsync>d__36.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Graph.BaseRequest.<SendAsync>d__32`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Graph.MessageRequest.<UpdateAsync>d__8.MoveNext()
Хотя мы предоставили разрешение Mail.ReadWrite
в соответствии с делегированными разрешениями для обеих учетных записей.
Пожалуйста, предложите.