lib/omniauth/strategies/linkedin.rb in omniauth-linkedin-oauth2-0.1.5 vs lib/omniauth/strategies/linkedin.rb in omniauth-linkedin-oauth2-0.2.5

- old
+ new

@@ -8,12 +8,12 @@ # This is where you pass the options you would pass when # initializing your consumer from the OAuth gem. option :client_options, { :site => 'https://api.linkedin.com', - :authorize_url => 'https://www.linkedin.com/uas/oauth2/authorization?response_type=code', - :token_url => 'https://www.linkedin.com/uas/oauth2/accessToken' + :authorize_url => 'https://www.linkedin.com/oauth/v2/authorization?response_type=code', + :token_url => 'https://www.linkedin.com/oauth/v2/accessToken' } option :scope, 'r_basicprofile r_emailaddress' option :fields, ['id', 'email-address', 'first-name', 'last-name', 'headline', 'location', 'industry', 'picture-url', 'public-profile-url'] @@ -42,10 +42,14 @@ extra do { 'raw_info' => raw_info } end + def callback_url + full_host + script_name + callback_path + end + alias :oauth2_access_token :access_token def access_token ::OAuth2::AccessToken.new(client, oauth2_access_token.token, { :mode => :query, @@ -54,13 +58,19 @@ :expires_at => oauth2_access_token.expires_at }) end def raw_info - @raw_info ||= access_token.get("/v1/people/~:(#{options.fields.join(',')})?format=json").parsed + @raw_info ||= access_token.get("/v1/people/~:(#{option_fields.join(',')})?format=json").parsed end private + + def option_fields + fields = options.fields + fields.map! { |f| f == "picture-url" ? "picture-url;secure=true" : f } if !!options[:secure_image_url] + fields + end def user_name name = "#{raw_info['firstName']} #{raw_info['lastName']}".strip name.empty? ? nil : name end