【发布时间】:2015-11-08 06:09:10
【问题描述】:
我正在为Android Publisher v2 和Oauth2 v2 使用Java SDK。一旦我创建了服务帐户,我就获得了一个带有客户端 ID、电子邮件、私钥等的 Google Play Android Developer 服务帐户的 JSON。我试图环顾四周并弄清楚如何创建一个凭据,以便我使用 AndoirdPublisher 服务来获取有关我的 Android 应用用户订阅、权利等的信息,并将此信息存储在我们的后端服务器上。
我很难弄清楚如何去做。到目前为止,我看到的所有文档都没有帮助使用下载的 JSON 创建GoogleCredential。
例如有这个documentation,但它只提到了 P12 文件而不是 JSON。如果可能,我想避免 P12,因为我有多个客户端,并且我想将此 JSON 保存在某种数据库中,然后使用它为每个客户端创建凭据。
只是为了澄清我正在尝试按照此处所述创建 GoogleCredential 对象,
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 文件设置服务帐户,而是想使用在创建服务帐户时生成的带有相同信息的 JSON。
【问题讨论】:
-
不完全确定您在问什么,但您应该首先按照here 列出的步骤进行操作。如果您愿意使用它,它将告诉您如何创建服务帐户。为确保您确实可以提取信息,需要检查的是,启用 Google Play Android Developer API,将您的项目与您的 Google Play 发布帐户相关联,并在 Google Play 商店控制台中为您的服务帐户授予必要的权限。跨度>
-
@Andy 谢谢。是的,我已经创建了一个服务帐户并希望使用为其生成的 JSON(而不是 P12 文件)来创建 GoogleCredential 对象。
-
@Andy 我已更新问题以提供更多信息。
标签: android google-play-services in-app-billing subscription google-api-java-client