Ruby で Yahoo OAuth アクセス トークンを更新しようとしているときに、思わず髪が抜けてしまいました。
OmniAuth および OAuth gem を使用して、Yahoo からアクセス トークンを取得できますが、1 時間で期限切れになります。
期限切れのトークンを更新する Yahoo の指示に従っていますが、一貫して 401 が返されます。
OAuth gem を使用してアクセス トークンを更新する方法を誰かが教えてくれたら、とてもありがたいです。
Ruby で Yahoo OAuth アクセス トークンを更新しようとしているときに、思わず髪が抜けてしまいました。
OmniAuth および OAuth gem を使用して、Yahoo からアクセス トークンを取得できますが、1 時間で期限切れになります。
期限切れのトークンを更新する 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
config 変数を 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コードを見ると明らかではありませんでした