Search code examples
authorizationgoogle-apioauth-2.0credentialsaccess-token

How to get access token from GoogleCredential?


I am trying to get an access token to use the Google Play Android Developer API, and I got this far using the Google API Java Client documentation example:

HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();

GoogleCredential credential = new GoogleCredential.Builder()
    .setTransport(HTTP_TRANSPORT)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId("...gserviceaccount.com")
    .setServiceAccountScopes("https://www.googleapis.com/auth/androidpublisher")
    .setServiceAccountPrivateKeyFromP12File(keyFile)
    .build();

But how do I get the access token from this credential? credential.getAccessToken() returns null. Am I doing something wrong, or missing some steps?


Solution

  • Got it. You have to call credential.refreshToken() before credential.getAccessToken(). It doesn't say this anywhere in the documentation but that's what does it.

    credential.refreshToken();
    accessToken = credential.getAccessToken();