Google Directory API возвращает access_denied при вызове groups (). List (). Execute ()

Получение списка пользователей - это работа, но список групп возвращает ошибку (access_denied)

Источник

scopeList.add(DirectoryScopes.ADMIN_DIRECTORY_USER);
scopeList.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP);
scopeList.add(DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER);

credential = new GoogleCredential.Builder()
    .setTransport(httpTransport)
    .setJsonFactory(jsonFactory)
    .setServiceAccountId("[email protected]")
    .setServiceAccountScopes(scopeList)
    .setServiceAccountPrivateKeyFromP12File(new java.io.File("xxxxx-privatekey.p12"))
    .setServiceAccountUser("[email protected]")
    .build();

Directory admin = new Directory.Builder(httpTransport, jsonFactory, credential)
    .setApplicationName("Test")
    .setHttpRequestInitializer(credential).build();


admin.users().list().setDomain("test.com").execute();
admin.groups().list().setDomain("test.com").execute();

Ошибка

com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
  "error" : "access_denied"
}
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105)
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:332)
    at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:352)
    at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:269)
    at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:454)
    at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:215)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:854)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)

person Moongle    schedule 22.08.2013    source источник


Ответы (1)


person Jay Lee    schedule 25.08.2013
comment
ServiceAccountUser является суперадминистратором, а учетная запись службы предоставила группу доступа. (googleapis.com/auth/admin.directory.group) - person Moongle; 26.08.2013
comment
Странно, что users (). List () удалось, а groups.list () не удалось. - person Moongle; 26.08.2013
comment
Я нашел проблему. Линия ниже создает проблемы. scopeList.add (DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER); - person Moongle; 27.08.2013
comment
@Moongle, как вы предоставили области доступа для пользователей и групп вашей учетной записи службы? Я не мог найти, где это сделать. Я использую тот же код, но всегда получаю сообщение error: access_denied или code: 403, errors: [{domain: global, message: Not Authorized to access this resource / api ... - person dmitry747; 29.08.2013
comment
@ dmitry747, пожалуйста, задайте для этого новый вопрос. - person Jay Lee; 29.08.2013
comment
@Jay Lee создал новый вопрос stackoverflow.com/questions/18568716/ - person dmitry747; 02.09.2013