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