我们有一个应用程序Azure,我们已经能够阅读用户的电子邮件到目前为止,经过大量的工作和挫折。
出于测试目的,我给了应用程序几乎完全访问权限(请参阅图像)。

),包括但不限于代表用户发送电子邮件、阅读用户电子邮件等等。我知道,除非需要,否则我们不需要给应用程序这样的访问权限,但这只是为了使发送电子邮件工作。
我有这个卷曲代码来测试发送电子邮件
curl -i https://graph.microsoft.com/v1.0/me/sendmail -H 'Content-Type: application/json' -X POST -d '{"Message":{"Subject": hi", "Body": {"ContentType": "Text", "Content": "body"},"ToRecipients":[{"EmailAddress": {"Address": "alerts-noreply@mail.windowsazure.com"}}]},"SaveToSentItems": "true"}' -H 'Authorization: Bearer eyJ......TOKEN.....YlhaHbAFQ'它给了我这个错误
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access is denied. Check credentials and try again.",
"innerError": {
"request-id": "4895f98f-c5a4-4083-867b-f6c7b4634b7f",
"date": "2017-01-24T21:48:47"
}
}
}如果应用程序拥有如此全面的访问权限,为什么应用程序会被拒绝呢?
令牌由以下代码获取:
https://login.microsoftonline.com/f0263....0be3/oauth2/authorize?client_id=8a676..e4b6&redirect_uri=http://www.wrabc.com:8090/&response_type=code.我请求你的帮助。
发布于 2017-01-26 05:55:38
要执行发送消息的API,我们需要授予Mail.Send权限。如果在用户授予应用程序后更改权限,则用户需要通过重新授予更新权限。
另一种可能的重新授予方法是在输入授权请求时添加参数prompt=consent。有关请求中的参数的更多细节,您可以参考这里。
发布于 2017-01-25 20:12:03
如果您在同意后添加了该权限,您可以尝试在https://myapps.microsoft.com/为用户删除该应用程序还是注册一个新的应用程序?那就签个名,再同意一次。它应该更新令牌的scp。
https://stackoverflow.com/questions/41839740
复制相似问题