Добавить члена в Outlook, используя Java Microsoft Graph SDK
Я пытаюсь добавить пользователя в группу в Outlook, используя Microsoft Graph API в Java. Я добавил руководство разработчика: https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/group_post_members для добавления пользователя.
Однако для достижения этого я использую Microsoft graph java sdk и мне нужно добавить объект 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}"
}
Пожалуйста, дайте мне знать, как я могу добавить объект json в тело запроса в java.
Мой код выглядит так:
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);
}
При этом я получаю ошибку, как показано ниже:
SEVERE: Детализируемая деталь: 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%5B...%5D
ошибка 400, неверный запрос [...]
Пожалуйста, дайте мне знать, как я мог решить эту проблему.
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);