带有Json密钥文件的服务帐户

时间:2017-05-02 06:56:13

标签: java google-api google-oauth google-api-java-client service-accounts

我正在关注本教程Hello Analytics API: Java quickstart for service accounts。代码工作正常。问题是下面的代码使用p12密钥文件谷歌只支持它们的向后兼容性,他们已经开始鼓励开发人员将JSon Key文件用于服务帐户。

// Construct a GoogleCredential object with the service account email
// and p12 file downloaded from the developer console.
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
    .setTransport(httpTransport)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
    .setServiceAccountPrivateKeyFromP12File(new File(KEY_FILE_LOCATION))
    .setServiceAccountScopes(AnalyticsScopes.all())
    .build();

我搜索了高低不能找到将JSon密钥文件与Google API Java库一起使用的示例。我甚至检查了文档及其未列出的GoogleCredential.Builder,但我不确定该文档是否是最新的。我试图检查库中的代码但是我对Java很新,并且无法找到任何使用Google api java client

是否可以将Json密钥文件与Google API Java客户端库中的服务帐户一起使用?

1 个答案:

答案 0 :(得分:1)

只需使用fromStream方法。

File jsonKey = new File(KEY_FILE);
InputStream inputStream = new FileInputStream(jsonKey);
GoogleCredential credential =
    GoogleCredential.fromStream(inputStream, HTTP_TRANSPORT, JSON_FACTORY);