我正在尝试使用Microsoft Graph和POSTMan列出Outlook任务文件夹。以下是我使用的URL:
https://graph.microsoft.com/beta/me/outlook/taskFolders
在请求标头中添加了承载令牌后,我得到以下响应图:
"code": "NoPermissionsInAccessToken",
"message": "The token contains no permissions, or permissions can not be understood.",
我已经启用了以下权限:Tasks.ReadWrite
。我在这里想念什么?
我可以在使用client credentials flow
获取访问令牌时重现您的问题。我decode the access token,但看不到我分配的权限。正如article所说:
权限是从用户委派的,通常是在同意过程中。但是,在客户端凭据流中,权限直接授予应用程序本身。当应用向资源提供令牌时,资源将强制应用本身有权执行操作而不是用户有权执行操作。
因此,我建议您可以使用OAuth 2.0 authorization code flow
获取访问令牌。并在范围内添加您的Tasks.Read
权限。
https://login.microsoftonline.com/xxxxx/oauth2/v2.0/authorize?
client_id=xxxxx
&response_type=code
&redirect_uri=https://localhost:123
&response_mode=query
&scope=https://graph.microsoft.com/Tasks.Read
有关获取具有身份验证代码流的访问令牌的更多详细信息,可以参考此article。