Oauth 2.0 无法解析GoogleCredential.Builder()

Oauth 2.0 无法解析GoogleCredential.Builder(),oauth-2.0,google-oauth,Oauth 2.0,Google Oauth,我正在开发一个服务帐户应用程序,以获取用于访问下游服务的令牌。然而,我在汇编方面面临一个问题。Eclipse提示错误“无法解析com.google.api.client.auth.oauth2.Credential$Builder类型。它是从必需的.class文件中间接引用的。”。下面的代码片段: import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.h

我正在开发一个服务帐户应用程序,以获取用于访问下游服务的令牌。然而,我在汇编方面面临一个问题。Eclipse提示错误“无法解析com.google.api.client.auth.oauth2.Credential$Builder类型。它是从必需的.class文件中间接引用的。”。下面的代码片段:

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson.JacksonFactory;


public class AppMain {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    final HttpTransport TRANSPORT = new NetHttpTransport();
    final JsonFactory JSON_FACTORY = new JacksonFactory();

    GoogleCredential credential = new  GoogleCredential.Builder()
      .setTransport(TRANSPORT)
      .setJsonFactory(JSON_FACTORY)
      .setServiceAccountId("SOMETHING@developer.gserviceaccount.com")
      .setServiceAccountScopes(BigqueryScopes.BIGQUERY)
      .setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
      .build();
}
}

请帮忙。提前感谢。

我解决了这个错误,将google api客户端依赖项重写为-

    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.22.0</version>
    </dependency>

com.google.api-client
谷歌api客户端
1.22.0

通过在库“google-oauth-client-1.22.0.jar”中添加一个jar,我解决了上述问题并获得了令牌。下面是代码片段

GoogleCredential googleCredentials = GoogleCredential.fromStream(serviceAccount);
GoogleCredential scoped = googleCredentials.createScoped(
Arrays.asList(
        "https://www.googleapis.com/auth/firebase.messaging"    
            )
    );
scoped.refreshToken();
String token = scoped.getAccessToken();

几乎可以肯定,您的库版本存在问题。请确保您拥有最新版本,如果示例代码不起作用,请不要感到惊讶,因为它很少在破坏库中的更改后得到更新。谢谢!你说得对,这是versionHi的问题!我面临着类似的问题,你在使用哪个库?我用1.9.11版本替换了最新版本的jackson core,它解决了这个问题。google-oauth-client-x.xx.x.jar也解决了我的问题。您可能需要com.google.api.client.json.jackson2.JacksonFactory而不是..jackson.JacksonFactory