我正在尝试使用Java中的Microsoft Graph API将用户添加到Outlook中的组。我已经参考了开发人员指南:https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/group_post_members 用于添加用户。
但是要实现此目的,我使用的是 Microsoft图形java sdk ,我需要在组中添加成员 Id 的 json 对象在Java中,例如
POST https://graph.microsoft.com/v1.0/groups/{id}/members/$ref
Content-type: application/json
Content-length: 30
{
"@odata.id": "https://graph.microsoft.com/v1.0/users/{id}"
}
请让我知道如何在Java中的请求正文中添加json对象。
我的代码如下:
public void addMemberToGroup(String groupId,String userId) {
Group group = mGraphServiceClient
.groups(groupId)
.buildRequest()
.get();
JsonObject payload1 = new JsonObject();
IJsonBackedObject requestBody = new ReferenceRequestBody("https://graph.microsoft.com/v1.0/users/78276c08-9802-4108-8b20-d70cff6666e5");
mGraphServiceClient
.groups(groupId)
.members(userId)
.buildRequest()
.post(user,requestBody);
}
与此有关,我得到如下错误:
严重:可抛出详细信息:com.microsoft.graph.http.GraphServiceException:错误代码:BadRequest 错误消息:仅在包含的实体上支持写请求
POST https://graph.microsoft.com/v1.0/groups/5877490c-54fe-45fb-b288-b5d0f6902058/members/78276c08-9802-4108-8b20-d70cff6666e5 SdkVersion:graph-java-v0.2.0 授权:Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI [...] {“ @ odata.id”:“ https://graph.microsoft.com/v1.0/use[...]
400:错误请求 [...]
请让我知道如何解决此问题。
答案 0 :(得分:0)
应该是这样的:
User user = new User();
user.id=userId;
mGraphServiceClient.groups(groupId).members().references().buildRequest().post(user);
或
DirectoryObject directoryObject = new DirectoryObject();
directoryObject.id = userId;
mGraphServiceClient.groups(groupId).members().references().buildRequest().post(directoryObject);