Hi,

I am trying to add linkedin login feature in my rails application using 
omniauth gem..I used omniauth gem for Fb login and it's working fine..but 
it's not working for linkedin login

this is my code

/model/user.rb

class User < ActiveRecord::Base
  attr_accessible :name, :oauth_expires_at, :oauth_token, :provider, :uid



 def self.from_omniauth(auth)
    where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      user.name = auth.info.name
      user.oauth_token = auth.credentials.token
      user.oauth_expires_at = Time.at(auth.credentials.expires_at)
      user.save!
    end
  end

/controller/sessions_controller.rb

class SessionsController < ApplicationController


def create

 user = User.from_omniauth(env["omniauth.auth"])
    session[:user_id] = user.id

    redirect_to root_url


end


def destroy
  session[:user_id] = nil
  redirect_to root_url, :notice => "Signed out!"
end



end

/config/initializer/omniauth.rb

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, '###########', '###########'
  provider :linkedin, "##########", "##############", :scope => 
'r_fullprofile r_emailaddress r_network', :fields => ["id", 
"email-address", "first-name", "last-name", "headline", "industry", 
"picture-url", "public-profile-url", "location", "connections"]
end
end



Error:

TypeError in SessionsController#create

can't convert nil into an exact number


Application 
Trace<http://localhost:3000/auth/linkedin/callback?oauth_token=ed161640-d196-4fc6-adfe-771d5f6fd322&oauth_verifier=57451#>
 | Framework 
Trace<http://localhost:3000/auth/linkedin/callback?oauth_token=ed161640-d196-4fc6-adfe-771d5f6fd322&oauth_verifier=57451#>
 | Full 
Trace<http://localhost:3000/auth/linkedin/callback?oauth_token=ed161640-d196-4fc6-adfe-771d5f6fd322&oauth_verifier=57451#>

app/models/user.rb:12:in `at'
app/models/user.rb:12:in `block in from_omniauth'
app/models/user.rb:7:in `tap'
app/models/user.rb:7:in `from_omniauth'
app/controllers/sessions_controller.rb:6:in `create'

Request

*Parameters*:

{"oauth_token"=>"ed161640-d196-4fc6-adfe-771d5f6fd322",
 "oauth_verifier"=>"57451",
 "provider"=>"linkedin"}

Show session 
dump<http://localhost:3000/auth/linkedin/callback?oauth_token=ed161640-d196-4fc6-adfe-771d5f6fd322&oauth_verifier=57451#>

Show env 
dump<http://localhost:3000/auth/linkedin/callback?oauth_token=ed161640-d196-4fc6-adfe-771d5f6fd322&oauth_verifier=57451#>
Response

*Headers*:

None




I am not sure what fields I need to add or remove from user table and what 
changes required in controller  and model
please help

Thanks

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/fdc6d6ec-eac8-4ac6-b507-1e45408255ba%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to