ruby-oauth で Yahoo! OAuth を使う方法
ruby-oauth で Yahoo! OAuth を使おうとしてだいぶはまったので、対応方法をメモ。
まずは oauth_parameter のうち、値が空のものは送らないようにしないと行けないようです。これは Yahoo! 側の問題かな?この問題を解決するには、OAuth::Client::Helper をオーバーライドします。
LANG : RUBY
-
# Yahoo! Hacks (for OAuth2.1)
-
class OAuth::Client::Helper
-
def oauth_parameters
-
{ 'oauth_consumer_key' => options[:consumer].key,
-
'oauth_token' => options[:token] ? options[:token].token : '',
-
'oauth_signature_method' => options[:signature_method],
-
'oauth_session_handle' => options[:oauth_session_handle] ? options[:oauth_session_handle] : '',
-
'oauth_timestamp' => timestamp,
-
'oauth_nonce' => nonce,
-
'oauth_version' => '1.0' }.reject { |k,v| v == "" }
-
end
-
end
次に、Yahoo! OAuth では1時間ごとに token を再発行したり、その際に session_handle を使ったりするので、ruby-oauth の OAuth::AccessToken と OAuth::RequestToken をこれらの属性に対応させる必要があります。











