Google凭证弃用

问题描述

我们希望实现Google OAUTH,以便与基于Web应用程序的凭据完美配合使用。流程从UI端开始,显示用户同意屏幕,然后我们获取代码。然后将该代码发送到基于Java的后端以获取刷新令牌。

目前,我们使用这种方法

 private Analytics getAnalytics(String refreshToken) throws Exception {

        NetHttpTransport httpTransport =
                GoogleNetHttpTransport.newTrustedTransport();

        JsonFactory jsonFactory =
                JacksonFactory.getDefaultInstance();

        return new Analytics.Builder(
                httpTransport,jsonFactory,new GoogleCredential.Builder()
                        .setTransport(httpTransport)
                        .setJsonFactory(jsonFactory)
                        .setClientSecrets(clientId,clientSecret)
                        .build()
                        .setRefreshToken(refreshToken)
        ).build();
    }

上面的问题是不推荐使用GoogleCredential。他们不赞成使用什么方式做到这一点?

我们正在使用以下lib:

com.google.apis.google-api-services-analytics:v3-rev20190807-1.30.10

解决方法

  • Google Credential尚未完全弃用,它取决于您使用的库(com.google.auth:google-auth-library-oauth2-http:0.17.1应该仍然可用)

  • 在任何情况下,如here所述,不建议使用的方法是使用Google Auth Library for Java

  • 有一些示例,这些示例用于构建凭据的不同方法-取决于您的用例。