Obteniendo un 403 – Prohibido para la cuenta de servicio de Google

Estoy tratando de obtener un token de acceso para la cuenta de servicio de Google. Lo siguiente es mi código:

String SERVICE_ACCOUNT_EMAIL = "edited@developer.gserviceaccount.com"; List scope = new ArrayList(); scope.add("https://www.googleapis.com/auth/admin.directory.user"); String keyFile = "C:\\edited-privatekey.p12"; HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); JsonFactory JSON_FACTORY = new JacksonFactory(); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(HTTP_TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) .setServiceAccountScopes(scope) .setServiceAccountPrivateKeyFromP12File(new java.io.File(keyFile)) .build(); credential.refreshToken(); String accessTokens = credential.getAccessToken(); 

Aunque el código funciona bien y obtengo un token de acceso, cuando trato de usarlo para ‘OBTENER’ un usuario de Google Apps usando las API del Directorio de Google, obtengo un código de respuesta 403 – Prohibido. ¿Podría alguien ayudarme?
Sé que el código para el usuario GET es correcto porque funciona bien con el token de acceso generado por Google Apps Admin.

Debe configurar una cuenta de administrador con:

 .setServiceAccountUser(some_admin_email) 

Y asegúrese de que su aplicación (con los ámbitos correctos) tenga acceso en el panel de control.

Vaya a https://admin.google.com . Inicie sesión y agregue control de seguridad si no existe en Más controles. Haga clic en Security->Advance Settings->Manage ThirdParty OAuth Client Access y verifique que esos ámbitos se agreguen (separados por comas) para su ID de cuenta / cliente de la cuenta de servicio xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com .