Ottenere un 403 – Proibito per l’account di servizio di Google

Sto cercando di ottenere un token di accesso per l’account del servizio Google. Di seguito è riportato il mio codice –

String SERVICE_ACCOUNT_EMAIL = "[email protected]"; 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(); 

Sebbene il codice funzioni correttamente e ottengo un token di accesso, quando provo a utilizzarlo per “OTTENERE” un utente di Google Apps utilizzando le API di Google Directory, ottengo un codice di risposta 403 – Vietato. Qualcuno potrebbe aiutarmi?
So che il codice per l’utente GET è corretto perché funziona correttamente con il token di accesso generato da Google Apps Admin.

Devi impostare un account amministratore con:

 .setServiceAccountUser(some_admin_email) 

E assicurati che l’app (con gli ambiti corretti) abbia accesso al cpanel.

Passare a https://admin.google.com . Accedi e aggiungi il controllo di sicurezza se non esiste da Altri controlli. Fai clic su Security->Advance Settings->Manage ThirdParty OAuth Client Access e verifica che tali ambiti vengano aggiunti (separati da virgola) per l’ID account di servizio xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com .