【问题标题】:Microsoft Graph REST API not able to write mailMicrosoft Graph REST API 无法写入邮件
【发布时间】:2019-11-26 21:09:19
【问题描述】:

我正在使用 graph rest api 来编写草稿邮件。

首先,我用https://graph.microsoft.com/.default范围调用了authorize方法:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=MY_CLIENT_ID&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient&response_mode=query&scope=https://graph.microsoft.com/.default

用得到的代码,我调用了同样作用域的token方法:

https://login.microsoftonline.com/common/oauth2/v2.0/token

使用此令牌,我可以毫无问题地获取消息,但是当我尝试通过调用:https://graph.microsoft.com/v1.0/me/messages/ 创建草稿时,我收到以下错误:

{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "7fafbb5a-ab6d-4dbc-bb73-69d58b00f7ac",
      "date": "2019-11-26T20:48:24"
    }
  }
}

如文档 (https://docs.microsoft.com/en-us/graph/api/user-post-messages?view=graph-rest-1.0&tabs=http) 中所述,我已在我注册的 Azure 应用程序中设置了 Mail.ReadWrite 权限并获得管理员同意。我错过了什么吗?

【问题讨论】:

    标签: azure microsoft-graph-api


    【解决方案1】:

    我检查了 Graph 日志,并且对 Microsoft Graph 的调用没有 Mail.ReadWrite 权限。您可以尝试将该权限添加到隐式身份验证流调用中的scope 查询参数而不是.default 吗? (如果您需要多个权限,可以将它们全部列在范围参数中,以空格分隔)

    【讨论】:

    • 成功了,谢谢!您知道为什么在 Azure App 中设置了权限,但通话中却没有权限吗?在范围级别设置权限和 Azure App Application/Delegated 权限有什么区别?我是 Azure 新手,我还不清楚这些概念
    • 太棒了,很高兴它的工作!在 v2 auth 中,最终用户可以授予同意(他们会看到一些同意屏幕,询问您的应用是否可以访问他们的帐户),也可以由租户管理员代表其组织中的每个用户授予同意。在 Azure 门户中,您可以向应用添加权限并同意它们,因此租户中的每个用户都不需要这样做,因为它是受信任的应用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2019-12-03
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多