Android上的Yahoo OAuth-401错误

我正在尝试使用路标库在Android上实现Google,Twitter,Yahoo等的OAuth.

除Yahoo以外,以上所有方法均能正常工作,雅虎在尝试检索请求令牌时给我401错误.我尝试将回调URL修改为http,甚至尝试带外身份验证.

有谁知道我可能做错了什么?

我的使用Signpost库请求OAuth请求令牌的代码粘贴在下面.

private static CommonsHttpOAuthConsumer yahooConsumer = new CommonsHttpOAuthConsumer(
        YAHOO_CONSUMER_KEY, YAHOO_CONSUMER_SECRET);
private static CommonsHttpOAuthProvider yahooProvider = new CommonsHttpOAuthProvider(
        YAHOO_REQUEST_URL, YAHOO_ACCESS_TOKEN_URL, YAHOO_AUTH_URL); 

String authURL = yahooProvider.retrieveRequestToken(
yahooConsumer,YAHOO_REDIRECT_URL);
startWebView(authURL);

编辑:

这是捕获到的Exception的输出:

08-21 00:18:10.935: WARN/System.err(3752): oauth.signpost.exception.OAuthNotAuthorizedException: Authorization failed (server replied with a 401). This can happen if the consumer key was not correct or the signatures did not match.
08-21 00:18:10.945: WARN/System.err(3752): at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239)
08-21 00:18:10.945: WARN/System.err(3752): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)
08-21 00:18:10.955: WARN/System.err(3752): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69)

谢谢,

阿比纳夫

解决方法:

Consumer_key_rejected表示您未向Yahoo提供有效的Consumer_key.如果您确实为Yahoo提供了正确的consumer_key,则可以在Yahoo中检查您的应用注册.可能您需要至少检查Yahoo提供的一项或多项服务.不要忘记选择应用程序的类型,无论是基于Web的还是基于客户端的.

由于Yahoo将权限范围包装到了Consumer Key中,所以这一切都是有道理的.请阅读以下说明以获取更多详细信息:Yahoo OAuth Scope.

这是变通办法示例,提示可能对解决您的问题有用:Yahoo OAuth Problem – Consumer Key Rejected

让我知道这是否适合您.

上一篇:与C#中的最新Yahoo Messenger协议连接


下一篇:PHP-Codeigniter本地主机电子邮件未发送