gpt4 book ai didi

android - 如何使用服务帐户 JSON 创建 GoogleCredential

转载 作者:IT老高 更新时间:2023-10-28 23:31:36 24 4
gpt4 key购买 nike

我正在为 Android Publisher v2Oauth2 v2 使用 Java SDK。创建服务帐户后,我得到了一个 JSON 格式的 Google Play Android Developer 服务帐户,其中包含客户端 ID、电子邮件、私钥等。我试图环顾四周并弄清楚如何创建凭据这样我就可以使用 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。

最佳答案

我能够通过在 github 上挖掘 GoogleCredential 本身的源代码(目前位于 here)来解决这个问题。

原来我的代码中存在的 google-api-java-client 版本有点过时了。我将它升级到最新的 1.20.0 并且我现在能够直接指定为创建 GoogleCredential 而创建的 JSON 对象。我希望 Google 能够更新他们的文档。

这是代码 fragment ,

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

GoogleCredential credential = GoogleCredential.fromStream(resourceAsStream);

就这么简单。

关于android - 如何使用服务帐户 JSON 创建 GoogleCredential,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32019322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com