小编Sal*_*lil的帖子

使用基于sign-post api的grails-oauth插件刷新Yahoo Oauth访问令牌

我正在使用grails oauth插件.这为我提供了access_token成功的雅虎.但问题是 - 这个令牌(来自雅虎)的有效期仅为1小时.之后我们需要刷新它.通过他们的文档,似乎他们有刷新它的过程(如果令牌过期).这个调用绕过了第三条腿(用户的手动接受过程).这是非常好的!

现在,如果我正在尝试使用方法oauthService.fetchAccessToken- 我想这是击中get_access_token网址的方法(在提供商方面).但我得到例外:

oauth.signpost.exception.OAuthNotAuthorizedException:授权失败(服务器回复401).如果使用者密钥不正确或签名不匹配,则会发生这种情况.at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239)at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)at oauth.signpost.AbstractOAuthProvider.retrieveAccessToken(AbstractOAuthProvider.java:99)at oauth.signpost.来自org.grails.plugins.oauth.OauthService $ fetchAccessToken.call(未知来源)的org.grails.plugins.oauth.OauthService.fetchAccessToken(OauthService.groovy:286)中的OAuthProvider $ retrieveAccessToken.call(未知来源)


我已经进一步调试了插件和路标代码.而且我认为我们应该研究路标(现在),插件可以在以后轻松修改.

为了您的信息,我使用signpost(jar - 1.2.1.1)与commonshttp4客户端

这是用于刷新accessToken的Yahoo文档页面的链接. http://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html

Yahoo需要oauth_session_handle在yahoo发送的请求中使用accessToken参数.路标确实提供了一种获取此方法的方法provider.getResponseParameters().

接下来是,我使用以下方法将这些参数放回到refreshToken请求中 - consumer.setAdditionalParameters(httpParams)

但它不起作用!以下是stacktrace的一部分.当我尝试获取refreshedAccessToken时

oauth.signpost.exception.OAuthNotAuthorizedException:授权失败(服务器回复401).如果使用者密钥不正确或签名不匹配,则会发生这种情况.at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:239)at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189)at oauth.signpost.AbstractOAuthProvider.retrieveAccessToken(AbstractOAuthProvider.java:99)

期待很快听到一些伟大/慷慨的家伙:-)

谢谢,萨利尔

java grails oauth signpost yahoo-api

4
推荐指数
1
解决办法
1470
查看次数

标签 统计

grails ×1

java ×1

oauth ×1

signpost ×1

yahoo-api ×1