簡體   English   中英

如何在 rails 中獲取 linkedin 個人資料信息?

[英]How to get linkedin profile information in rails?

您好我正在使用 linkedin gem 從 rails 連接 linkedin。 這是我的 controller。

class LoginsController < ApplicationController
  helper_method :current_user

  def show
  end

  def create
    request_token = consumer.get_request_token(:oauth_callback => callback_login_url)
    Rails.cache.write(request_token.token, request_token.secret)
    redirect_to request_token.authorize_url
  end

  def callback
    request_token = OAuth::RequestToken.new(consumer, params[:oauth_token], Rails.cache.read(params[:oauth_token]))
    access_token = request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
    session[:access_token] = access_token.token
    session[:access_token_secret] = access_token.secret
    redirect_to :action => :show
  end

  def logout
    reset_session
    redirect_to :action => :show
  end

  private
  CONSUMER_KEY = {
    :key => "ddddd",
    :secret => "eeeeeeeeee"
  }
  CONSUMER_OPTIONS = { :site => 'https://api.linkedin.com',
                     :authorize_path => '/uas/oauth/authorize',
                     :request_token_path => '/uas/oauth/requestToken',
                     :access_token_path => '/uas/oauth/accessToken' }

  def consumer
    @consumer ||= OAuth::Consumer.new( CONSUMER_KEY[:key], CONSUMER_KEY[:secret], CONSUMER_OPTIONS)
  end

  def access_token
    if session[:access_token]
      @access_token ||= OAuth::AccessToken.new(consumer, session[:access_token], session[:access_token_secret])
    end
  end

  def current_user
    if access_token
      @current_user ||= JSON.parse(access_token.get('http://api.linkedin.com/v1/people/~', 'x-li-format' => 'json').body)
    end
    @current_user
  end

end

這就是我的觀點:

<% if current_user %>
  Welcome to Lovelinked , <%=link_to current_user['firstName'], current_user['siteStandardProfileRequest']['url'] %>
  <%=link_to current_user['lastName'], current_user['siteStandardProfileRequest']['url'] %>
  <%=button_to "Sign Out", logout_login_path, :method => :get %>
<% else %>
  Sign in with LinkedIn
  <%=button_to "Sign In", login_path, :method => :post %>
<% end %>

我能夠獲取 firstName 和 lastName 並傳遞 images_url 和 location 等參數,但它不起作用,如何獲取這些信息以及教育 currentcompanyname 等。

請幫助我用谷歌搜索但無法獲得正確的信息。

使用“linkedin”gem,您可以執行以下操作以獲取您要查找的信息作為字符串數組返回。

user = client.profile(:fields => %w(positions))
companies = user.positions.all.map{|t| t.company}
# And if you want the most recent company it can be accessed via companies[0]

所有這些信息都可以在https://github.com/pengwynn/linkedin/blob/master/examples/profile.rb找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM