Разрешения Linkedin: предоставление только текущей информации о местоположении

Этот вопрос связан с тем же вопросом здесь, но все же я сталкиваюсь с той же проблемой, что linkedin предоставляет только текущую информацию о должности, как я могу получить информацию о прошлых должностях и образовании, используя гем linkedin в Rails, мой контроллер 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

person Sreehari K M    schedule 29.12.2012    source источник
comment
Вам нужна информация об авторизованном пользователе или информация о соединениях для этого конкретного авторизованного пользователя?   -  person Cris    schedule 02.01.2013
comment
Мне просто нужны подробности об этом конкретном авторизованном пользователе, особенно все данные о прошлой должности и сведения об образовании.   -  person Sreehari K M    schedule 02.01.2013
comment
developer.linkedin.com/documents/profile-fields#profile это может помочь вы обновили поля профиля LinkedIn API   -  person Cris    schedule 03.01.2013
comment
Я сослался на то же самое, чтобы получить подробности Cris, в этом документе они сказали, что атрибут «positions» вернет набор позиций, но я не знаю, почему linkedin возвращает только текущий статус позиции.   -  person Sreehari K M    schedule 03.01.2013
comment
попробуйте это, c.profile(:fields =›%w(positions)) чтобы получить как минимум позиции   -  person Cris    schedule 03.01.2013
comment
Вау, Крис, теперь все работает, в чем была проблема раньше? Я думаю, что поля должны быть конкретными в отношении атрибутов. Я имею в виду, что базовый_профиль должен быть в одном наборе, а поля полного_профиля должны быть в другом, мы не можем объединить эти два поля в одном. верно?   -  person Sreehari K M    schedule 03.01.2013


Ответы (1)


LinkedIn очень внимательно относится к доступу к полям профиля, и вы не можете комбинировать несколько полей, для чего требуется 2 разных доступа. поэтому, когда вы пытаетесь получить только сведения о позиции с помощью c.profile(:fields => %w(positions)), он предполагает доступ типа «r_basicprofile», тогда как для поля образования требуется доступ типа «r_fullprofile». Поэтому попробуйте 2 отдельных вызова API для получения обоих полей.

«first_name», «last_name», «headline», «positions» доступны для разрешения члена «r_basicprofile», поэтому их можно комбинировать вместе.

person Cris    schedule 04.01.2013