Hello,
I've also problem with authorize Service Account OAuth 2.0 from Java.
I've generated client_id and private key in pkcs12 fromat (Google Console API). I've tryed send JWS by several ways - no succes.
Here my code:
JsonFactory jsonFactory = new JacksonFactory();
HttpTransport httpTransport = new NetHttpTransport();
String clientId = "*****.
apps.googleusercontent.com";
String pkcs12Repo = "*****-privatekey.p12";
String scope = "
https://www.googleapis.com/aussssth/plus.me";
List<CredentialRefreshListener> list = new ArrayList<CredentialRefreshListener>();
list.add(new CredentialRefreshListener() {
public void onTokenResponse(Credential credential,
TokenResponse tokenResponse) {
log.debug(tokenResponse.toPrettyString());
}
public void onTokenErrorResponse(Credential credential,
TokenErrorResponse tokenErrorResponse) {
log.debug("Error: " + tokenErrorResponse.toPrettyString());
}
});
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(clientId)
.setServiceAccountPrivateKeyFromP12File(new File(pkcs12Repo))
.setRefreshListeners(list)
.setServiceAccountScopes(scope)
.build();
credential.refreshToken();
I always get error:
{
"error" : "invalid_grant"
}
Perhaps You know where could be the problem?
Rebards,
WG