我正在使用 graph rest api 来编写草稿邮件。
首先,我使用 https://graph.microsoft.com/.default
范围调用了授权方法:
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
使用此 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://learn.microsoft.com/en-us/graph/api/user-post-messages?view=graph-rest-1.0&tabs=http ) 中所述,我已在注册的 Azure 应用程序中设置了 Mail.ReadWrite
权限并授予管理员同意。我错过了什么吗?
最佳答案
我检查了 Graph 日志,发现对 Microsoft Graph 的调用没有 Mail.ReadWrite
权限。您可以尝试将该权限添加到隐式身份验证流程调用中的 scope
查询参数而不是 .default 中吗? (如果您需要多个权限,您可以将它们全部列在范围参数中,并用空格分隔)
关于azure - Microsoft Graph REST API 无法写入邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59059347/