我正在尝试获取Google服务帐户的访问令牌.以下是我的代码 -
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();
虽然代码工作正常但我确实获得了访问令牌,但当我尝试使用Google Directory API"GET"Google Apps用户时,我会收到403 - 禁止响应代码.有人可以帮忙吗?
我知道GET用户的代码是正确的,因为它适用于Google Apps管理员生成的访问令牌.
您需要设置管理员帐户:
.setServiceAccountUser(some_admin_email)
并确保您的应用程序(具有正确的范围)被授予cpanel访问权限.