0

有谁知道如何将 oauth 与 scribe 与 Gdata 服务相结合:

因此,在使用 scribe 进行身份验证后,我拥有访问令牌并需要将其推送到 gdata ContactsService 的实例(对于任何其他服务,我猜它的工作方式相同)。

我试过简单

GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(accessTokenString);

其中 accessTokenString 是运行后从 scribe 获得的 String

Token accessToken = service.getAccessToken(requestToken, verifier);

但这在请求时没有例外:

Exception in thread "main" java.lang.NullPointerException: No authentication header information
at com.google.gdata.util.AuthenticationException.initFromAuthHeader(AuthenticationException.java:96)
at com.google.gdata.util.AuthenticationException.<init>(AuthenticationException.java:67)
at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:608)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.Service.getFeed(Service.java:1135)
at com.google.gdata.client.Service.getFeed(Service.java:998)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
at com.google.gdata.client.Service.getFeed(Service.java:1017)

将 scribe 与 gdata 结合起来会很好,因为我已经准备好了 scribe,并且 gdata 提供了更好的 api 来处理来自 google 的数据

谢谢

4

1 回答 1

0

我不知道accessTokenString你的例子是什么。toString我认为这是在 Scribes accessToken 对象上调用该方法的结果。

如果是这样并且 gdata 只需要访问令牌,您应该这样做:

Token accessToken = service.getAccessToken(requestToken, verifier);
GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(accessToken.getToken());
于 2012-06-08T14:49:21.457 回答