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