Open abrambailey opened 9 years ago
@abrambailey It seems this link is dead. I'm seeing a lot of places suggest adding "picture-urls::(original)" to the field in devise.rb
config.omniauth :linkedin, app_key, app_secret,
scope: 'r_basicprofile r_emailaddress',
fields: %w(id email-address first-name last-name picture-urls::(original))
but this does not seem to work. I get all of the other fields but no additional picture urls are returned. At first I thought linkedin changed their api but it still references this field in their documentation.
I did this ... https://github.com/abrambailey/omniauth-linkedin-oauth2/commit/58b732e4eaff896e58590643af849203344497c1
Then in omniauth callbacks controller
def linkedin
# You need to implement the method below in your model (e.g. app/models/user.rb)
@user = User.find_for_linkedin_oauth2(request.env["omniauth.auth"])
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "LinkedIn"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.linkedin_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
Then in user.rb
def self.find_for_linkedin_oauth2(access_token, signed_in_resource=nil)
data = access_token.info
user = User.where(:email => data["email"]).first
unless user
if (data[:image][:values] rescue nil) != nil
url = data[:image][:values][0]
user = User.create(
username: data["name"],
email: data["email"],
password: Devise.friendly_token[0,20],
role_ids: [Role.find_by(name: "dispenser").id],
avatar: open(url)
)
else
user = User.create(
username: data["name"],
email: data["email"],
password: Devise.friendly_token[0,20],
role_ids: [Role.find_by(name: "dispenser").id]
)
end
end
user
end
Hmmm and this still works for you as of today? - I'm doing something very similar. I've added the "'picture-urls::(original)'" to fields as well (did this in devise.rb instead) but "url = data[:image][:values][0]" never returns anything.
https://www.hearingtracker.com/users/sign_in
Try it and let me know. Just fill in your name and sex, and I'll remove your account.
Doesn't seem like it worked :(
Well crap. Thanks for noticing this bug. I guess no one reported it to me, and we weren't testing it.
Not even sure when it stopped working.
I'm actually amazed that I caught it this quickly. Thanks @ishields !
Deleted your user account, email, etc, from our server. Fwiw.
Is it possible. The photo is pretty terrible. Thanks