【问题标题】:How can i get user objects by id or userPrincipalName using Graph API?如何使用 Graph API 通过 id 或 userPrincipalName 获取用户对象?
【发布时间】:2021-02-03 19:26:17
【问题描述】:

我正在尝试使用 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、surname、displayName、businessPhones 等)。我在Graph Explorer 中使用了一个示例查询。但是我无法使用 java sdk 获得多个用户。我怎样才能做到这一点?

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api microsoft-graph-sdks


    【解决方案1】:

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

    你需要轮询users并获取它们对应的属性,像这样:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多