我正在尝试通过多种方式在JAVA中使用Microsoft Graph api(测试版)。(我引用此链接来连接api“ https://docs.microsoft.com/en-us/graph/tutorials/java”)而且我可以使用v1.0的所有功能,但不能使用beta版。
例如,当我请求以下代码时,他们成功返回了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
我不知道是什么问题...
我使用下面的代码来使用Beta版本。
// 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
要使用Beta版,我应该进行哪些修改?很抱歉,如果这是一个重复的问题。
Microsoft Graph Java SDK
仅包含用于使用流畅的API访问Microsoft Graph Java SDK
端点的模型和请求构建器。 (如果特定的API存在,则将有v1.0
,java SDK sample)
即使使用otherwise not,它仍将使用graphClient.setServiceRoot("https://graph.microsoft.com/beta/")
类对所有内容进行序列化/反序列化。
如果要使用/v1.0
中不存在的资源/属性,则需要使用Beta清单来v1.0
。
有关更多详细信息,请检查此generate the SDK code yourself,Microsoft Graph产品团队的@Marc LaFleur提到了它。