【问题标题】:C# Graph API - Setting IsRead - Access DeniedC# Graph API - 设置 IsRead - 拒绝访问
【发布时间】: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) 观察结果。
  • 宾果游戏!端点是问题所在。感谢您对此的快速响应,它现在正在工作:)

标签: c# microsoft-graph-api


【解决方案1】:
  • 由于您可以使用所有消息重现问题,我建议您尝试在代码之外使用 Microsoft Graph explorer
  • 根据您的检查,您发现端点是问题所在。通过提供正确的端点,它奏效了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2012-04-29
    相关资源
    最近更新 更多