0

我编写了一个代码,它使用 Google Directory API 从服务器获取用户帐户信息。它专门获取用户列表,但默认情况下,系统会按照用户电子邮件地址的字母顺序返回一个包含 100 个用户的列表。这可以通过将Directory.Users.List.setMaxResults设置为 500(这是上限)来更改。但万一我将其设置为超过 500,调用会返回异常。

所以我的问题是,如果服务器有超过 500 个用户,是否可以在一个列表中获取所有用户(超过 500 个)?如果没有,是否有任何解决方法来获取所有用户?

注意-我正在使用目录 api 的 Java 客户端库

4

2 回答 2

0

就像你说的,最大页面大小是 500,允许的值是从 1 到 500。因此,你必须得到一个例外。
为了获取下一页用户,API 会在响应中为下一页发送一个 pageToken。使用它来获取下一组 500 个用户,依此类推。实际的 API 如下所示 - https://developers.google.com/admin-sdk/directory/v1/reference/users/list

于 2015-01-24T17:29:33.720 回答
0

像这样使用 pageToken:

List<User> usersList = new ArrayList<User>();
com.google.api.services.admin.directory.Directory.Users.List ul = dir.users().list().setCustomer(customerId).setMaxResults(Config.MAX_API_RESULTS);
do {
    Users curPage = ul.execute();
    usersList.addAll(curPage.getUsers());
    ul.setPageToken(curPage.getNextPageToken());
} while(ul.getPageToken() != null && ul.getPageToken().length() > 0);
于 2014-12-14T15:14:25.087 回答