L'obtention d'un 403 - Interdit à Google de Compte de Service
Je suis en train d'essayer d'obtenir un jeton d'accès de Google de Compte de Service. Voici mon code -
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();
Bien que le code fonctionne très bien et je ne obtenir un jeton d'accès, lorsque j'essaie de l'utiliser pour se un Utilisateur Google Apps à l'aide de Google Répertoire Api, je reçois un 403 - Forbidden code de réponse. Quelqu'un pourrait s'il vous plaît aider?
Je sais que le code pour OBTENIR de l'utilisateur est correct, car il fonctionne très bien avec le jeton d'accès généré par Administrateur Google Apps.
Vous devez vous connecter pour publier un commentaire.
Vous devez définir un compte admin:
Et assurez-vous que votre Application (avec le bon étendues) se voit accorder l'accès au cpanel.
Procéder à https://admin.google.com . De connexion et d'ajouter de contrôle de la Sécurité des si n'existe pas de Plus de Contrôles.
Cliquez sur
Security->Advance Settings->Manage ThirdParty OAuth Client Access
et de vérifier que ces étendues sont ajoutés(séparés par des virgules) pour votrexxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
compte de service id/numéro de client.