Class: OmniAuth::Strategies::Weibo

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/weibo.rb

Instance Method Summary collapse

Instance Method Details

#authorize_paramsObject

You can pass display, with_offical_account or state params to the auth request, if you need to set them dynamically. You can also set these options in the OmniAuth config :authorize_params option.

/auth/weibo?display=mobile&with_offical_account=1



86
87
88
89
90
91
92
93
94
95
# File 'lib/omniauth/strategies/weibo.rb', line 86

def authorize_params
  super.tap do |params|
    %w[display with_offical_account forcelogin state].each do |v|
      if request.params[v]
        params[v.to_sym] = request.params[v]
      end
      session["omniauth.state"] = params[v.to_sym] if v == 'state'
    end
  end
end

#callback_urlObject



40
41
42
# File 'lib/omniauth/strategies/weibo.rb', line 40

def callback_url
  token_params_redirect || (full_host + script_name + callback_path)
end

#find_imageObject



55
56
57
# File 'lib/omniauth/strategies/weibo.rb', line 55

def find_image
  raw_info[%w(avatar_hd avatar_large profile_image_url).find { |e| raw_info[e].present? }]
end

#image_urlObject

url: option: size: avatar_hd original original_size avatar_large large 180x180 profile_image_url middle 50x50

small     30x30

default is middle



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/omniauth/strategies/weibo.rb', line 65

def image_url
  image_size = options[:image_size] || :middle
  case image_size.to_sym
  when :original
    url = raw_info['avatar_hd']
  when :large
    url = raw_info['avatar_large']
  when :small
    url = raw_info['avatar_large'].sub('/180/','/30/')
  else
    url = raw_info['profile_image_url']
  end
end

#raw_infoObject



48
49
50
51
52
53
# File 'lib/omniauth/strategies/weibo.rb', line 48

def raw_info
  access_token.options[:mode] = :query
  access_token.options[:param_name] = 'access_token'
  @uid ||= access_token.get('/2/account/get_uid.json').parsed["uid"]
  @raw_info ||= access_token.get("/2/users/show.json", :params => {:uid => @uid}).parsed
end

#token_params_redirectObject



44
45
46
# File 'lib/omniauth/strategies/weibo.rb', line 44

def token_params_redirect
  token_params['redirect_uri'] || token_params[:redirect_uri]
end