2014-06-23 2 views
0
  1. 개발자 콘솔에 Google 애플리케이션을 만들었습니다.
  2. 는 "OAuth 클라이언트 액세스 관리"에서 API 액세스
  3. 사용 관리 SDK
  4. 사용 전 "https://www.googleapis.com/auth/admin.directory.user"범위와 "공인 API 클라이언트"를 추가했다.

또한 내 도메인에서 사용자를 얻으려고합니다.관리자가 아닌 사용자를위한 google admin SDK

JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); 
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 

ArrayList<String> scopeList = new ArrayList<>(); 
scopeList.add(DirectoryScopes.ADMIN_DIRECTORY_USER_READONLY); 
GoogleCredential credential = new GoogleCredential.Builder() 
      .setTransport(httpTransport) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId("[email protected]") 
      .setServiceAccountScopes(scopeList) 
      .setServiceAccountPrivateKeyFromP12File(new File("p12 file"))) 
      .setServiceAccountUser("[email protected]") 
      .build(); 

credential.setAccessToken("access token of current google user"); 

Directory admin = new Directory.Builder(httpTransport, JSON_FACTORY, credential) 
      .setApplicationName("Capsidea") 
      .setHttpRequestInitializer(credential).build(); 
return admin.users().list().setDomain("my-domain.com").execute(); 

OAuth를 통해 Google에 [email protected]으로 로그인하면 모두 작동합니다. 하지만 [email protected]에 의해 logined 때 오류가 있습니다 비 관리 사용자가 목록을 가져올 수

"이 리소스/API에 액세스 할 수있는 권한이 없습니다" 도메인에있는 모든 사용자의 도메인이 변경되면 superadmin을 지정해야한다는 점에서이 코드가 작동합니까? 아이디어가 있으십니까?

답변

0

setServiceAccountUser에는 관리 API 사용이 가능한 사용자가 필요합니다 (세분화 된 역할 구성 도구가 있음).

코드가 작동하려면 해당 사용자가 필요하다고 명시하십시오.

관련 문제