当我要求Microsoft图形列出我的收件箱中的消息时,我收到403拒绝权限错误,但是我可以列出我的邮箱中的文件夹。由于两者都需要相同的权限,为什么我会收到403错误?
我正在使用具有用户委派权限的oauth2授权代码流,以通过Microsoft图形(v1.0,但也尝试使用Outlook Mail REST API v2.0,具有相同结果)访问Outlook邮件。我已经使用委托Mail.Read,Mail.ReadBasic,Mail.ReadWrite和Mail.Send权限在Azure上注册了我的应用程序。我还通过授权流程以自己的身份授予了这些权限。
所以,现在我想阅读收件箱中的邮件。成功授权后,我会收到访问和刷新令牌。我可以使用访问令牌来获取邮箱中的文件夹列表。根据API(https://docs.microsoft.com/en-us/graph/api/user-list-mailfolders?view=graph-rest-1.0&tabs=http),此操作需要Mail.Read权限。但是,当我在收件箱中请求邮件列表时(在完全相同的授权顺序之后,使用相同的访问令牌用于在仍然有效的小时内获取文件夹列表,或者在使用刷新令牌获取新的访问令牌之后-无效),我收到403权限被拒绝的错误:
错误消息:访问被拒绝。检查凭据,然后重试。
由于所需的权限是相同的(https://docs.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http),因此我对于为什么要为前一个请求授予权限而不是向后者授予权限感到困惑。