2014-10-22 6 views
0

Вот мой мандата построен с использованием учетной записи службы,ресурса не найден API userKey каталога Google с помощью учетной записи службы

GoogleCredential credential = new GoogleCredential.Builder() 
      .setJsonFactory(jsonFactory).setTransport(httpTransport) 

    .setServiceAccountId("[email protected]") 
    .setServiceAccountPrivateKeyFromP12File(new File("key.p12")) 

    .setServiceAccountScopes(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER)) 

    .build(); 

И все, что я пытаюсь, чтобы получить пользователь, где Пользователь com.google.api.services .admin.directory.model.User

User u = null; 
try { 
    u = service.users().get("[email protected]").execute(); 
} catch (Exception e) { 

    e.printStackTrace(); 
} 

    return u.toPrettyString(); 
} 

ответ возвращается с кодом 404 ресурс не найден ?? Должен ли пользователь быть создан? как получить доступ к любому пользователю gmail?

ответ

2

Предполагая, что вы уже предоставили свой счет службы domain-wide delegation, вы должны иметь это олицетворение учетной записи администратора с помощью .setServiceAccountUser("[email protected]"), как показано на service account documentation. Учетные записи служб сами не являются админами домена, поэтому им нужно выдать себя за использование API-интерфейсов администратора SDK.

+0

Я добавил пользователя учетной записи службы [email protected] – simpleProgrammer

+0

Решил ли это вашу проблему? –

+0

да, это я, вот я создал учетную запись администратора Google Apps, предоставленную администратором по электронной почте как пользователь учетной записи службы, а также добавленный идентификатор клиента в Admin Apps, следуя руководству googletutorial – simpleProgrammer