2012-09-24 99 views
14

我试图得到一个访问令牌使用谷歌Play Android开发者API,我能走到今天使用the Google API Java Client documentation example如何从GoogleCredential获取访问令牌?

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(); 

但我怎么得到这个证书的访问令牌? credential.getAccessToken()返回null。我做错了什么,或者错过了一些步骤?

+0

此外,请检查http://stackoverflow.com/a/24264696/165708一些更多的步骤,你可能需要采取一切工作。 –

回答

39

明白了。您必须在credential.getAccessToken()之前调用credential.refreshToken()。它没有在文档中的任何地方说过,但这就是它的意思。

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

非常感谢@TheBeatlemaniac你真的好奇为什么这不写在文档 – jlezard

+1

谢谢。非常奇怪的是不在文档中,但这就是我们为什么这样做的原因。 :) – Nemanja

+0

是啊!男人,你救了我的一天:) o/ 谢谢@kalina! – Tuelho