members.list()在Google Admin SDK目录API(Java)中



我有一段代码(Java(来列出个人Google应用程序域上一个组的所有members。这使用谷歌目录API。

以下是片段:

public static void listMembers(String groupKey,Directory service) throws IOException {
        Members res = service.members().list(groupKey).execute();
        List<Member> members = res.getMembers();
        int count = 0;
        if (members == null || members.size() == 0) {
            System.out.println();
            System.out.println("No members found.");
        } else {
            System.out.println();
            System.out.println("Members of "+groupKey);
            for (Member member : members) {
                count++;
                System.out.println(member.getEmail());
            }
            System.out.println(count);
        }
    }

这很好,但对于任何组,列出的exactly 200 members都不超过,尽管一个组实际上有更多的用户。我试图在我正在使用的members.list()函数上搜索限制,但在目录API的Google文档中找不到。有这样的限制吗?如果是,我能以某种方式列出所有用户吗?

看看members.list((上的maxResults和pageToken属性。页面没有指定,但我相信200既是maxResults的默认值,也是最大值。您的应用程序需要检查结果中是否存在pageToken属性。如果设置好了,您至少还有一页结果要获取。在结果中保持循环,直到未设置pageToken。

我修改了代码以使用pageToken属性,如下所示:

public static void listMembers(String groupKey,Directory service) throws IOException {
        Directory.Members.List res = service.members().list(groupKey);
        Members mbrs;
        List<Member> members ;
        int count = 0;
        String pageToken;
        do{
                mbrs = res.execute();
                members = mbrs.getMembers();
                System.out.println();
                System.out.println("Members of "+groupKey);
                for (Member member : members) {
                    count++;
                    System.out.println(member.getEmail());
                }
                pageToken = mbrs.getNextPageToken();
                //System.out.println(res.getPageToken());   //The first pageToken of any Directory.Members.List is null.
                res.setPageToken(pageToken);
                System.out.println(count);
        }while(pageToken!=null);
    }

我想补充一点,任何Directory.Members.List的第一个pageToken都为null。可以通过将while循环的条件从pageToken!=null更改为true来验证这一点。此更改将反复列出所有成员。

相关内容

  • 没有找到相关文章

最新更新