尝试在 Ruby 中刷新 Yahoo OAuth 访问令牌时,我正处于非自愿脱发的境地。
使用 OmniAuth 和 OAuth gem,我可以从 Yahoo 获取访问令牌,但它会在一小时后过期。
我正在按照 Yahoo 说明刷新过期令牌,并且始终返回 401。
如果有人可以向我展示如何使用 OAuth gem 刷新访问令牌,我将不胜感激。
尝试在 Ruby 中刷新 Yahoo OAuth 访问令牌时,我正处于非自愿脱发的境地。
使用 OmniAuth 和 OAuth gem,我可以从 Yahoo 获取访问令牌,但它会在一小时后过期。
我正在按照 Yahoo 说明刷新过期令牌,并且始终返回 401。
如果有人可以向我展示如何使用 OAuth gem 刷新访问令牌,我将不胜感激。
首先,确保从原始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 通过调用 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代码来看,这并不明显