3

我的问题是我在尝试从 Yahoo 获取请求令牌时出错。错误说我缺少 oauth_callback 参数,是的,我想念它,因为我不需要它。我读过如果我不想使用它(桌面应用程序),我需要将它设置为“oob”值。我这样做了,但无济于事。如果我将它设置为 null 也会发生同样的情况。我为 java 使用 OAuth:http: //oauth.googlecode.com/svn/code/java/core/

OAuthServiceProvider serviceProvider = new OAuthServiceProvider("https://api.login.yahoo.com/oauth/v2/get_request_token",
                                                                        "https://api.login.yahoo.com/oauth/v2/request_auth",
                                                                        "https://api.login.yahoo.com/oauth/v2/get_token");
OAuthConsumer consumer = new OAuthConsumer("oob", consumerKey, consumerSecret, serviceProvider);
OAuthAccessor accessor = new OAuthAccessor(consumer);
OAuthClient client = new OAuthClient(new HttpClient4());
OAuthMessage response = client.getRequestTokenResponse(accessor, OAuthMessage.POST, null);
System.out.println(response.getBodyAsStream());
4

4 回答 4

1

您是否尝试过使用Scribe

我也遇到了 OAuth java 库的问题,所以我开发了那个。它几乎是跨提供者,并且比您正在使用的提供者更好地记录在案。

如果它不适用于 Yahoo,您可以轻松扩展它,创建您自己的Provider

希望有帮助!

于 2010-03-29T15:05:48.583 回答
1

java OAuthMassage 类中存在问题,我通过添加到 addRequiredParameters 方法来解决它 if (pMap.get(OAuth.OAUTH_CALLBACK) == null) { addParameter(OAuth.OAUTH_CALLBACK, consumer.callbackURL); 如果你仍然有这个问题,我可以帮助你:rbouadjenek@gmail.com

于 2010-06-26T12:49:40.757 回答
0

不确定最初的问题是否已经解决,但想指出雅虎上周发布的新 Java OAuth SDK:http:
//developer.yahoo.net/blog/archives/2010/07/yos_sdk_for_java.html

尝试使用 Java 通过 OAuth 访问 Yahoo 服务的开发人员可能会发现此 SDK 的某些部分很有帮助。

于 2010-07-12T18:12:36.360 回答
0

我没有使用过那个库,但看起来它没有正确处理回调 URL。由于 OAuth 1.0a(http://oauth.net/advisories/2009-1/http://oauth.net/core/1.0a/),回调 URL 需要在第一次调用中发送以获取请求令牌(不在客户端调用中对其进行授权),并且似乎该库尚未更新以执行此操作(至少从查看代码来看)。我假设雅虎需要该参数。

于 2010-05-04T18:41:19.900 回答