我如何使用 Graph API 通过 id 或 userPrincipalName 获取用户对象?
How can i get user objects by id or userPrincipalName using Graph API?
我正在尝试使用 Graph API 从 Active Directory 获取用户。为此,我正在使用用户 ID 列表。
String selectQuery = "id,mail,givenName,surname,displayName,businessPhones,department,assignedLicense";
List<Option> requestOptions = new LinkedList<>();
requestOptions.add(new QueryOption("$select", selectQuery));
IGraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider(new SimpleAuthProvider(accessToken)).buildClient();
List<User> users = new ArrayList<>();
for (String userID : userList) {
IUserRequest request = graphClient
.users()
.byId(userID)
.buildRequest(requestOptions);
users.add(request.get());
}
return users;
使用上面的代码我收到下面的输入。
[com.microsoft.graph.models.extensions.User@5042e9c3, com.microsoft.graph.models.extensions.User@1c9fc2e2]
我想接收我正在搜索的用户的用户资源字段(例如邮件、givenName、姓氏、displayName、businessPhones 等)。我在 Graph Explorer 中使用了示例查询。但是我无法通过 java sdk 获得多个用户。我怎样才能做到这一点?
你的代码是正确的,你已经得到了用户。
你需要轮询users
得到他们对应的属性,像这样:
for (User user : users) {
System.out.println("id:" + user.id + " mail:" + user.mail + " displayName:" + user.displayName);
}
我正在尝试使用 Graph API 从 Active Directory 获取用户。为此,我正在使用用户 ID 列表。
String selectQuery = "id,mail,givenName,surname,displayName,businessPhones,department,assignedLicense";
List<Option> requestOptions = new LinkedList<>();
requestOptions.add(new QueryOption("$select", selectQuery));
IGraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider(new SimpleAuthProvider(accessToken)).buildClient();
List<User> users = new ArrayList<>();
for (String userID : userList) {
IUserRequest request = graphClient
.users()
.byId(userID)
.buildRequest(requestOptions);
users.add(request.get());
}
return users;
使用上面的代码我收到下面的输入。
[com.microsoft.graph.models.extensions.User@5042e9c3, com.microsoft.graph.models.extensions.User@1c9fc2e2]
我想接收我正在搜索的用户的用户资源字段(例如邮件、givenName、姓氏、displayName、businessPhones 等)。我在 Graph Explorer 中使用了示例查询。但是我无法通过 java sdk 获得多个用户。我怎样才能做到这一点?
你的代码是正确的,你已经得到了用户。
你需要轮询users
得到他们对应的属性,像这样:
for (User user : users) {
System.out.println("id:" + user.id + " mail:" + user.mail + " displayName:" + user.displayName);
}