我正在使用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
使用获得的代码,我调用了具有相同作用域的令牌方法:
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
权限,并获得了管理员的同意。我想念什么吗?
答案 0 :(得分:1)
我检查了Graph日志,并且对Microsoft Graph的调用没有Mail.ReadWrite
权限。您可以尝试在您的隐式身份验证流调用中而不是.default中将该权限添加到scope
查询参数中吗? (如果需要多个权限,可以在范围参数中将它们全部列出,并用空格分隔)