douban-ruby
douban-ruby copied to clipboard
douban Ruby client
trafficstars
= Douban Ruby Client
http://github.com/lidaobing/douban-ruby
== Description
douban ruby client. including OAuth support.
- RDoc: http://rubydoc.info/github/lidaobing/douban-ruby/master/frames
- Douban API reference: http://www.douban.com/service/apidoc/reference/
== Installation
gem install douban-ruby
== Usage
=== Basic Process
require 'douban'
douban = Douban::Authorize.new(apikey, secret) puts "please open #{douban.get_authorize_url}" puts "after login, press Enter to continue"
gets puts douban.get_people
=== Async Process (or Server Process)
class DoubanController < ApplicationController
DOUBAN_APIKEY = '0fb6d0a851af01a12f2471f8f50d04e3'
DOUBAN_SECRET = 'c59e3be2ccdde999'
def index
unless params[:oauth_token]
unless session[:access_token]
# step 1, initial state, store request_token to session
callback_url = url_for :action => :index
redirect_url = douban.get_authorize_url(callback_url)
session[:request_token] = douban.request_token :as_hash
redirect_to redirect_url
else
# step 3, have access_token, now you can use douban API
douban.access_token = session[:access_token]
render :text => douban.get_people.inspect
end
else
if session[:request_token]
# step 2, return from douban, store access_token to session
douban.request_token = session[:request_token]
douban.auth
reset_session
session[:access_token] = douban.access_token :as_hash
redirect_to :action => :index
else
# error branch, you return from douban, but no request_token in session
logger.info "return from oauth but no request_token"
redirect_to :action => :index
end
end
end
private
def douban
@douban ||= Douban::Authorize.new DOUBAN_APIKEY, DOUBAN_SECRET
end
end
== LICENSE:
licensed under Artistic License or GPL license.