使用Java Microsoft graph SDK在Outlook中添加成员

时间:2018-11-04 11:58:12

标签: java microsoft-graph-sdks

我正在尝试使用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:错误请求 [...]

请让我知道如何解决此问题。

1 个答案:

答案 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);