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>")

Tags of current page

,