java - ms Graph api(beta) 访问被拒绝
问题描述
我正在尝试几种将 Microsoft Graph api(测试版)与 JAVA 结合使用的方法。(我参考这个链接来连接api“ https://docs.microsoft.com/en-us/graph/tutorials/java ”)我可以使用v1.0的所有功能,但我不能使用测试版.
例如,当我请求下面的代码时,他们成功返回 JsonObject。
JsonObject response = graphClient
.customRequest("/me/calendar")
.buildRequest()
.get();
但是当我请求下面的代码时,
JsonObject response = graphClient
.customRequest("/me/findRoomLists")
.buildRequest()
.get();
他们返回以下错误
There was an unexpected error (type=Internal Server Error, status=500).
Error code: ErrorAccessDenied Error message: Access is denied. Check credentials and try again. GET https://graph.microsoft.com/beta//me/findRoomLists SdkVersion : graph-java/v1.5.0 Authorization : Bearer
我不知道是哪个问题...
我使用下面的代码来使用测试版。
// Build a Graph client
graphClient = GraphServiceClient.builder()
.authenticationProvider(authProvider)
.logger(logger)
.buildClient();
//version change 1.0 -> beta
graphClient.setServiceRoot("https://graph.microsoft.com/beta/");
这是我在 Azure 中的 API 权限。
1. Calendars.ReadWrite
2. Mail.ReadWrite
3. User.ReadBasic.All
4. User.ReadWrite
应用范围
app.scopes=User.ReadWrite,Calendars.ReadWrite,Mail.ReadWrite
我应该修改什么才能使用测试版?如果这是一个重复的问题,我很抱歉。
解决方案
Microsoft Graph Java SDK
仅包含模型和请求构建器,用于使用 fluent API 访问端点v1.0
。(如果特定 API 存在,则会有一个Java SDK 示例,否则不存在)
即使您使用graphClient.setServiceRoot("https://graph.microsoft.com/beta/")
,它仍然会使用/v1.0
类对所有内容进行序列化/反序列化。
如果您想使用 中不存在的资源/属性v1.0
,则需要使用 beta 清单自己生成 SDK 代码。
有关更多详细信息,请查看此链接,在 Microsoft Graph 产品团队工作的人 @Marc LaFleur 提到了它。
推荐阅读
- rust - 在范围内有不正确(大于正确)生命周期的引用是否可以?
- .net-core - 从服务代理向 RabbitMQ 放置消息
- javascript - 使用节点 js/javascript 在 map 函数中使用 async-await 值
- node.js - Mongoose MongoDB 找到数组字段中数组长度最小的那个
- android - AppCenter:对具有动态功能模块的 Android 应用程序使用仪器测试
- sqlite - 迁移未使用 Capacitor 在 Ionic 和 Vue 上的 TypeORM 上注册
- asp.net-core - 使用 Google 登录,仅允许组织域帐户
- python - Plotly 注释彼此太近(不可读)
- c# - Xamarin 标签文本在移出 ContentPage 并再次移回它后出现
- json - 如何使用bash替换json中的文本