Azure active directory 授权标头,仍然未经授权

Azure active directory 授权标头,仍然未经授权,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我正在尝试使用Microsoft Graph API,一整天都在使用401',没有任何进展。如果你看到任何错误,请告诉我 HttpHeaders=newhttpheaders(); 添加(“授权”,访问令牌); HttpEntity=新的HttpEntity(标题); RestTemplate RestTemplate=新RestTemplate(); 字符串响应=restTemplate .exchange(url、HttpMethod.GET、实体、String.class) .getBod

我正在尝试使用Microsoft Graph API,一整天都在使用
401
',没有任何进展。如果你看到任何错误,请告诉我

HttpHeaders=newhttpheaders();
添加(“授权”,访问令牌);
HttpEntity=新的HttpEntity(标题);
RestTemplate RestTemplate=新RestTemplate();
字符串响应=restTemplate
.exchange(url、HttpMethod.GET、实体、String.class)
.getBody();
System.out.println(响应);
编辑:我只想知道我发送授权的方式是否有问题。通过对Azure的不同调用正确设置了
access\u令牌
,并且应用程序具有调用API所需的权限

第二次编辑:url=”“。大量其他端点也已经过测试

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized

at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:531)
第三次编辑:

最好还有您用来请求令牌的代码,但从您共享的内容(包括from屏幕截图和您的描述)可以请求访问列表消息(/me/messages)端点

根据,要访问此作用域,您需要具有Mail.ReadMail.ReadWrite作用域。您的屏幕截图显示,您的应用程序注册信息已读取所有邮箱中的日历,并读取所有组作为应用程序级权限,登录并读取用户配置文件作为委托权限-这些范围均未定义访问用户电子邮件的权限

因为您正在尝试使用-我的假设是您正在使用委派权限(应用程序不知道“我”是什么)-因此,您必须添加邮件。阅读作为委派权限,并确保在请求令牌时使用此范围


因此,如果这没有帮助,请同时添加用于请求令牌的代码。

可能在访问令牌之前缺少“Bearer”一词。“Bearer”当前是字符串访问令牌的一部分。如果这里出现这样一个小错误,我会很高兴:)您请求了哪些作用域,您正在调用哪个端点?您正在返回的JSON负载示例也会有所帮助。请进行相应编辑。谢谢您的回答。我尝试调用许多端点。在屏幕截图中显示了权限后,您认为我有权调用哪些端点?@Skroovel-使用当前权限集,这取决于您的应用程序正在运行的上下文:
如果您的应用程序作为用户运行或代表用户获取令牌。
如果您的应用程序作为应用程序上下文运行,然后,您应该能够读取组织中的任何组和任何用户日历。如果您的应用程序是委托的,那么您的应用程序只能看到基本用户的配置文件(姓名、电子邮件、其他人)代表运行应用程序-这是最常见的,您的应用程序当前只能使用do a GET to the the