class OmniAuth::Strategies::LinkedIn
Public Instance Methods
access_token()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 42 def access_token ::OAuth2::AccessToken.new(client, oauth2_access_token.token, { :expires_in => oauth2_access_token.expires_in, :expires_at => oauth2_access_token.expires_at }) end
Also aliased as: oauth2_access_token
callback_url()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 36 def callback_url full_host + script_name + callback_path end
raw_info()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 49 def raw_info @raw_info ||= access_token.get(profile_endpoint).parsed end
Private Instance Methods
email_address()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 55 def email_address if options.fields.include? 'email-address' fetch_email_address parse_email_address end end
email_address_available?()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 72 def email_address_available? @email_address_response['elements'] && @email_address_response['elements'].is_a?(Array) && @email_address_response['elements'].first && @email_address_response['elements'].first['handle~'] end
email_address_endpoint()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 125 def email_address_endpoint '/v2/emailAddress?q=members&projection=(elements*(handle~))' end
fetch_email_address()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 62 def fetch_email_address @email_address_response ||= access_token.get(email_address_endpoint).parsed end
field_locale(field_name)
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 100 def field_locale field_name "#{ raw_info[field_name]['preferredLocale']['language'] }_" \ "#{ raw_info[field_name]['preferredLocale']['country'] }" end
fields()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 88 def fields options.fields.each.with_object([]) do |field, result| result << fields_mapping[field] if fields_mapping.has_key? field end end
fields_mapping()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 79 def fields_mapping { 'id' => 'id', 'first-name' => 'firstName', 'last-name' => 'lastName', 'picture-url' => 'profilePicture(displayImage~:playableStreams)' } end
localized_field(field_name)
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 94 def localized_field field_name return unless localized_field_available? field_name raw_info[field_name]['localized'][field_locale(field_name)] end
localized_field_available?(field_name)
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 105 def localized_field_available? field_name raw_info[field_name] && raw_info[field_name]['localized'] end
parse_email_address()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 66 def parse_email_address return unless email_address_available? @email_address_response['elements'].first['handle~']['emailAddress'] end
picture_available?()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 115 def picture_available? raw_info['profilePicture'] && raw_info['profilePicture']['displayImage~'] && picture_references end
picture_references()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 121 def picture_references raw_info['profilePicture']['displayImage~']['elements'] end
picture_url()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 109 def picture_url return unless picture_available? picture_references.last['identifiers'].first['identifier'] end
profile_endpoint()
click to toggle source
# File lib/omniauth/strategies/linkedin.rb, line 129 def profile_endpoint "/v2/me?projection=(#{ fields.join(',') })" end