Forum: Ruby on Rails linkedin login using omniauth

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
B4612bdda9c998a4c0b97807fc7681ac?d=identicon&s=25 Rekha Benada (Guest)
on 2013-08-26 22:41
(Received via mailing list)
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...
 | Framework
Trace<http://localhost:3000/auth/linkedin/callback?oauth...
 | Full
Trace<http://localhost:3000/auth/linkedin/callback?oauth...

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...

Show env
dump<http://localhost:3000/auth/linkedin/callback?oauth...
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
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2013-08-26 23:00
(Received via mailing list)
On 26 August 2013 21:39, Rekha Benada <rekha.benada@gmail.com> wrote:
> class User < ActiveRecord::Base
>       user.oauth_expires_at = Time.at(auth.credentials.expires_at)
>
> Application Trace | Framework Trace | Full Trace
>
> app/models/user.rb:12:in `at'

You have not told us which line this is, but I presume it is
      user.oauth_expires_at = Time.at(auth.credentials.expires_at)
What is the value of auth.credentials.expires_at, which seems to be
the value it is complaining about?

Colin
B4612bdda9c998a4c0b97807fc7681ac?d=identicon&s=25 Rekha Benada (Guest)
on 2013-08-27 07:06
(Received via mailing list)
oauth_expires_at is a column in user table and It gives date and
time...which I used for facebook login...But why it's giving problem
with
linkedin.?
This topic is locked and can not be replied to.