我如何通过id或userPrincipalName使用图形API获得用户对象?



我正在尝试使用图形API从活动目录获得用户。对于这个,我使用一个用户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]

我想接收我正在搜索的用户的用户资源字段(如mail, givenName,姓氏,displayName, businessphone等)。我在图形资源管理器中使用了一个示例查询。但我未能获得多个用户与java sdk。我怎样才能做到这一点?

你的代码是正确的,你已经得到了用户。

您需要轮询users并获得相应的属性,如下所示:

for (User user : users) {
System.out.println("id:" + user.id + " mail:" + user.mail + " displayName:" + user.displayName);
}

最新更新