Class: OmniAuth::Strategies::Weibo
- Inherits:
-
OAuth
- Object
- OAuth
- OmniAuth::Strategies::Weibo
- Defined in:
- lib/omniauth/strategies/weibo.rb
Instance Method Summary collapse
- #consumer ⇒ Object
-
#initialize(*args) ⇒ Weibo
constructor
A new instance of Weibo.
- #raw_info ⇒ Object
- #request_phase ⇒ Object
Constructor Details
#initialize(*args) ⇒ Weibo
Returns a new instance of Weibo.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/omniauth/strategies/weibo.rb', line 9 def initialize(*args) super # taken from https://github.com/intridea/omniauth/blob/0-3-stable/oa-oauth/lib/omniauth/strategies/oauth/tsina.rb#L15-21 . = { :access_token_path => '/oauth/access_token', :authorize_path => '/oauth/authorize', :realm => 'OmniAuth', :request_token_path => '/oauth/request_token', :site => 'http://api.t.sina.com.cn', } end |
Instance Method Details
#consumer ⇒ Object
21 22 23 24 |
# File 'lib/omniauth/strategies/weibo.rb', line 21 def consumer consumer = ::OAuth::Consumer.new(.consumer_key, .consumer_secret, .) consumer end |
#raw_info ⇒ Object
64 65 66 67 68 |
# File 'lib/omniauth/strategies/weibo.rb', line 64 def raw_info @raw_info ||= MultiJson.decode(access_token.get('/account/verify_credentials.json').body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end |
#request_phase ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/omniauth/strategies/weibo.rb', line 47 def request_phase request_token = consumer.get_request_token(:oauth_callback => callback_url) session['oauth'] ||= {} session['oauth'][name.to_s] = {'callback_confirmed' => true, 'request_token' => request_token.token, 'request_secret' => request_token.secret} if request_token.callback_confirmed? redirect request_token.([:authorize_params]) else redirect request_token.([:authorize_params].merge(:oauth_callback => callback_url)) end rescue ::Timeout::Error => e fail!(:timeout, e) rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e fail!(:service_unavailable, e) end |