OAuth を Ruby で試したときのメモ
たぶんバージョンは oauth 1.0a。
インストール
gem install oauth
キーとトークン
Consumer key and consumer secret
Consumer key と consumer secret は provider が consumer に提供する。 twitter を例にするとクライアントの開発者が twitter のページで申請して consumer key と consumer secret を取得して、 開発するアプリケーションに設定しておく。
Request token
ユーザーが verifier を取得するための URL を生成するために consumer が取得するトークン。
Access token
Access token を利用して consumer はユーザーの権限を使って provider が提供する機能を使うことができる。
サンプル
require 'oauth'
CONSUMER_KEY = "<some value>"
CONSUMER_SECRET = "<some value>"
consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, :site => '<some url>')
# * Get access token
request_token = consumer.get_request_token
p request_token.authorize_url
request_token.authorize_url にアクセスして verifier を取得する。 この verifier と request token から access token を取得する。
access_token = request_token.get_access_token(:oauth_verifier => "<verifier>")
p access_token.token
p access_token.secret
このアクセストークンを HTTP のメソッドを実行する。
ACCESS_TOKEN = "TOKEN"
ACCESS_TOKEN_SECRET = "SECRET"
access_token = OAuth::AccessToken.new(
consumer,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET
)
response = access_token.get("http://<some url of api>")
puts response.body
response = access_token.post("http://<some url of api>")
response = access_token.put("http://<some url of api>")
response = access_token.delete("http://<some url of api>")