2014-12-13 3 views
0

Google Directory API를 사용하여 서버에서 사용자 계정 정보를 가져 오는 코드를 작성했습니다. 구체적으로 사용자 목록을 가져 오지만 기본적으로 사용자의 전자 메일 주소가 사전 순으로 100 명의 사용자 목록이 반환됩니다. Directory.Users.List.setMaxResults을 500으로 설정하여 변경할 수 있습니다 (상한선 임). 하지만 500 이상으로 설정하면 예외가 반환됩니다.Google Directory API에서 500 명이 넘는 사용자 목록을 가져 오는 방법은 무엇인가요?

제 질문은 서버에 500 명 이상의 사용자가있는 경우 하나의 목록에 모든 사용자 (500 명 이상)를 가져올 수 있습니까? 그렇지 않은 경우 모든 사용자를 가져 오는 모든 해결 방법이 있습니까?

참고 - 나는 디렉토리 API를 같은

답변

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); 
0

당신이 말했듯이, 최대 페이지 크기는 500이며, 허용되는 값은 1에서됩니다 따라서 예외가 발생해야합니다.
다음 사용자 페이지를 가져 오기 위해 API는 응답의 다음 페이지에 대해 pageToken을 보냅니다. 다음 사용자 500 명을 얻으려면이 방법을 사용하십시오. 실제 API는 다음과 같습니다. https://developers.google.com/admin-sdk/directory/v1/reference/users/list