OAuth仲介用のWebサーバ
Twitterクライアントのために作っていたのだけど、何となくTwitterに依存しないようにしてみた。
ソースコード
key.yml
Twitterじゃなければsiteを適切に変更。
site: http://twitter.com consumer_key: CONSUMER_KEY consumer_secret: CONSUMER_SECRET access_token: ACCESS_TOKEN access_token_secret: ACCESS_TOKEN_SECRET
app.rb
#!/usr/bin/env ruby require 'yaml' require 'rubygems' require 'oauth' require 'sinatra' set :port, 10080 key = YAML::load_file('key.yml') consumer = OAuth::Consumer.new( key['consumer_key'], key['consumer_secret'], :site => key['site'] ) access_token = OAuth::AccessToken.new( consumer, key['access_token'], key['access_token_secret'] ) get '/' do redirect '/index.html' end get '/*' do access_token.get( "#{key['site']}#{request.path}?#{request.query_string}" ).body end post '/*' do access_token.post( "#{key['site']}#{request.path}", params ).body end
実行
http://HOSTNAME:10080/ に向かってAPIのパスを投げるといい。Twitterのフレンドタイムラインだと http://HOSTNAME:10080/statuses/friends_timeline.json とかね。