我在无意识的脱发点我试图刷新红宝石雅虎OAuth访问令牌。帮助提神雅虎的OAuth访问令牌在Ruby中
使用OmniAuth和OAuth的宝石,我能够得到雅虎的访问令牌,但它在一个小时后到期。
我正在关注的雅虎指令refresh an expired token,和我始终返回401
如果有人能告诉我如何刷新访问使用OAuth的宝石的道理,我会大大赞赏。
我在无意识的脱发点我试图刷新红宝石雅虎OAuth访问令牌。帮助提神雅虎的OAuth访问令牌在Ruby中
使用OmniAuth和OAuth的宝石,我能够得到雅虎的访问令牌,但它在一个小时后到期。
我正在关注的雅虎指令refresh an expired token,和我始终返回401
如果有人能告诉我如何刷新访问使用OAuth的宝石的道理,我会大大赞赏。
首先,请确保您从原来的get_access_token
调用保存oauth_session_handle参数。
然后,当你正在寻找刷新的access_token做这样的事情:
request_token = OAuth::RequestToken.new(consumer,
config["ACCESS_TOKEN"],
config["ACCESS_TOKEN_SECRET"])
token = OAuth::Token.new(config["ACCESS_TOKEN"],
config["ACCESS_TOKEN_SECRET"])
@access_token = request_token.get_access_token(
:oauth_session_handle => config["SESSION_HANDLE"],
:token => token)
...其中...
config["ACCESS_TOKEN"] is your old access token
config["ACCESS_TOKEN_SECRET"] is your old secret
config["SESSION_HANDLE"] is your oauth_session_handle
consumer is your OAuth::Consumer.new reference
我存储在一个YAML文件中的配置变量和然后在启动时加载它。
记住的@access_token
存储下一次。
我在YDN OAuth Forum适应这种从一个答案。
注:oauth_session_handle返回为一个PARAM通过调用get_access_token:
access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier)
oauth_session_handle = access_token.params['oauth_session_handle']
这是不到明显从看oauth-ruby/oauth代码
您还可以在WWW-验证响应 - 从雅虎发送的标题,以查看有关401响应返回原因的更多信息。它会说类似“oauth_problem = timestamp_refused”或“oauth_problem = parameter_absent&oauth_parameters_absent = oauth_timestamp”。 – Crashthatch 2011-07-01 11:01:07