今回は,
ruby-oauth の使い方
今後RubyでOAuth ConsumerおよびOAuth Service Providerを実装する場合は,
gem install oauth
Ruby OAuth GEMのサイトにも利用方法が紹介されていますが,
そこで今回はこのruby-oauthの実際の使い方を学びながら,
- 未認可のRequest Tokenを取得する
- 認可済のRequest TokenをAccess Tokenと交換する
- Access Tokenを利用した認可を必要とするデータへアクセスする
またそれ以外にブラウザのリダイレクトを利用する通信を行うシチュエーションが2つあります。
- 未認可のRequest Tokenに対してユーザの認可を求める
- 認可済のRequest TokenをConsumerに渡す
基本的には,
- 注)
- Yahoo! OAuthなど,
一部のService ProviderではAccess Tokenの有効期限の延長が必要な例などもありますが, ここではそういった例は扱いません。
そして,
OAuth::Consumerの利用
未認可のRequest Tokenを取得するには,
@consumer = OAuth::Consumer.new(
CONSUMER_KEY,
CONSUMER_SECRET,
options
)
ここでoptionsには以下のようなパラメータが指定可能です。
options = {
:site => SERVICE_PROVIDER_URL,
:request_token_url => SERVICE_PROVIDER_REQUEST_TOKEN_URL,
:request_token_path => SERVICE_PROVIDER_REQUEST_TOKEN_PATH,
:authorize_url => SERVICE_PROVIDER_AUTHORIZE_URL,
:authorize_path => SERVICE_PROVIDER_AUTHORIZE_PATH,
:access_token_url => SERVICE_PROVIDER_ACCESS_TOKEN_URL,
:access_token_path => SERVICE_PROVIDER_ACCESS_TOKEN_PATH,
:scheme => (:header || :body || :query_string),
:http_method => (:post || :get),
:signature_method => ('HMAC-SHA1' || 'RSA-SHA1' || 'PLAINTEXT'),
:private_key_file => PATH_TO_PRIVATE_KEY,
:oauth_version => "1.0"
}
siteは必須,
request_token_(url|path),authorize_(url|path),
access_token_(url|path)
access_
xxx_
xxx_url = site + xxx_path
何も指定しない場合はそれぞれ以下のデフォルト値が利用されます。
:request_token_path => '/oauth/request_token'
:authorize_path => '/oauth/authorize'
:access_token_path => '/oauth/access_token'
signature_method,private_key_file
Service Providerごとにサポートされているsignature_
scheme,http_method
OAuthでは通常はAuthorizationヘッダを利用して通信を行いますが,
:scheme => :header
:http_method => :post
こちらもService Provider側から特に指定の無い限り,