0

この質問はここで同じ質問に関連していますが、LinkedInが現在の位置情報のみを提供しているという同じ問題に直面しています。RailsのLinkedIn Gemを使用して過去の位置と教育の詳細を取得するにはどうすればよいですか、LinkedInコントローラーは以下に示すように、あなたの助けが必要です。

   require 'linkedin'

   class LinkedinUserController < ApplicationController

   def init_client
     key = "XXXXXX"
     secret = "XXXXXX"
     linkedin_configuration = { :site => 'https://api.linkedin.com',
        :authorize_path => '/uas/oauth/authenticate',
        :request_token_path =>'/uas/oauth/requestToken?scope=r_basicprofile+r_fullprofile+r_emailaddress+r_network+r_contactinfo',
        :access_token_path => '/uas/oauth/accessToken' }

     @linkedin_client = LinkedIn::Client.new(key, secret,linkedin_configuration)
   end

   def auth
     init_client
     request_token = @linkedin_client.request_token(:oauth_callback => "http://#{request.host_with_port}/linkedin/callback")
     session[:rtoken] = request_token.token
     session[:rsecret] = request_token.secret
     redirect_to @linkedin_client.request_token.authorize_url
   end

   def callback
     init_client
     if session[:atoken].nil?
       pin = params[:oauth_verifier]
       atoken, asecret =  @linkedin_client.authorize_from_request(session[:rtoken], session[:rsecret], pin)
       session[:atoken] = atoken
       session[:asecret] = asecret
     else
       @linkedin_client.authorize_from_access(session[:atoken], session[:asecret])
     end

     c = @linkedin_client
     c.profile(:fields=>["first_name","last_name","headline","positions","educations"])
   end
   end
4

1 に答える 1

1

LinkedInはプロファイルフィールドへのアクセスに非常にこだわっており、2つの異なるアクセスを必要とする複数のフィールドを組み合わせることができません。したがって、位置の詳細だけを取得しようとするとc.profile(:fields => %w(positions))、タイプ'r_basicprofile'のアクセスが想定されますが、教育フィールドではタイプ'r_fullprofile'のアクセスが必要です。したがって、両方のフィールドを取得するには、2つの別々のAPI呼び出しを試してください。

「first_name」、「last_name」、「headline」、「positions」は「r_basicprofile」メンバーの許可に使用できるため、一緒に組み合わせることができます。

于 2013-01-04T05:42:13.007 に答える