【发布时间】:2021-01-07 11:54:32
【问题描述】:
我在阅读电子邮件时设置 IsRead 属性时遇到问题,经过大量谷歌搜索后,以下似乎是所需的代码。
await Client.Me.Messages[m.Id].Request().Select("IsRead").UpdateAsync(new Message() { IsRead = true });
问题是这正在返回:
邮件异常:代码:ErrorAccessDenied
消息:访问被拒绝。检查凭据并重试
ClientRequestId:(这里的id)
Microsoft Graph Docs 表示所需的权限是 Mail.ReadWrite。我已经确认我们有。
Stackoverflow 上的其他问题包括 Fails to mark as read,但我的问题是访问被拒绝,而不是尝试设置只读属性。
我也尝试过这里的代码:Github Graph Issue,但我再次收到拒绝访问。
该应用具有以下权限: 邮件阅读
Mail.ReadBasic
Mail.ReadBasicAll
Mail.ReadWrite
邮件.发送
MailboxSettings.Read
MailboxSetings.ReadWrite
用户.读取
User.ReadAll
还有什么需要的吗?
【问题讨论】:
-
(1) 您看到上述问题是仅针对选定消息还是针对所有消息? (2) 您能否使用 Microsoft Graph 资源管理器针对同一消息重现该问题?
-
所有消息都会发生这种情况。不知道如何使用 Graph Explorer 进行测试,我也会研究一下。
-
哦,但它很奇怪。您实施了哪个 AAD 流程?我看到你叫我端点,所以我怀疑它会被委派权限。
-
尝试以下步骤:(1)打开developer.microsoft.com/en-us/graph/graph-explorer(2)登录您在上面尝试的同一个邮箱(3)获取您正在尝试的消息的ID(4)使用其 id 对给定消息进行 API 调用 (5) 观察结果。
-
宾果游戏!端点是问题所在。感谢您对此的快速响应,它现在正在工作:)