如何使用服务帐户JSON创buildGoogleCredential

我正在使用适用于Android Publisher v2Oauth2 v2的Java SDK。 一旦我创build了服务帐户,我就获得了带有客户端ID,电子邮件,私钥等的Google Play Android Developer服务帐户的JSON。我尝试了解如何创build证书,以便使用AndoirdPublisher服务获取我的Android应用程序的用户订阅,权利等信息,并将这些信息存储在我们的后端服务器上。

我正在努力弄清楚如何去做这件事。 迄今为止我所见过的文档都没有帮助使用下载的JSON创buildGoogleCredential

例如有这个文档,但它只提到关于P12文件而不是JSON。 我想避免P12,如果可能的话,因为我有多个客户端,我想将这个JSON保存在某种数据库,然后用它来为每个客户端创build凭据。

为了澄清我正在尝试按照此处所述创buildGoogleCredential对象,

 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.sqladmin.SQLAdminScopes; // ... String emailAddress = "123456789000-abc123def456@developer.gserviceaccount.com"; JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(emailAddress) .setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12")) .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) .build(); 

但是,而不是像使用setServiceAccountPrivateKeyFromP12File()这样使用P12文件设置服务帐户,我想使用携带相同的信息&创build服务帐户时生成的JSON。

Solutions Collecting From Web of "如何使用服务帐户JSON创buildGoogleCredential"

我可以通过在github上查看GoogleCredential本身的源代码来解决这个问题(现在就在这里 )。

原来我的代码中存在的google-api-java-client的版本有点过时。 我将其升级到了最新的1.20.0 ,现在我可以直接指定为创buildGoogleCredential而创build的JSON对象。 我希望Google会更新他们的文档。

这里是代码片段,

 InputStream resourceAsStream = AuthTest.class.getClassLoader().getResourceAsStream("Google-Play-Android-Developer.json"); GoogleCredential credential = GoogleCredential.fromStream(resourceAsStream); 

那很简单。