2015-11-21 1 views
2

Я использую Linkedin API для получения пользовательского контента в проекте RoR. Я следую за блоком this. Вот код контроллера:Как получить данные пользователя Linkedin?

Основной профиль (который работает отлично)

client = get_client 
profile = client.profile(:fields => ["first-name", "last-name", "maiden-name", "formatted-name" ,:headline, :location, :industry, :summary, :specialties, "picture-url", "public-profile-url"]) 

Опыт и позиция:

client = get_client 
positions = client.profile(:fields => [:positions]).positions.all 

Для образования:

client = get_client 
educations = client.profile(:fields => [:educations]).educations.all 

В то время как get_client

def get_client 
linkedin_oauth_setting = LinkedinOauthSetting.find_by_user_id(current_user.id) 
client = LinkedIn::Client.new('aaadad', 'dadada', @@config) 
client.authorize_from_access(linkedin_oauth_setting.atoken, linkedin_oauth_setting.asecret) 
client 
end 

Для сферы я установил:

:request_token_path => '/uas/oauth/requestToken?scope=r_fullprofile' 

Я могу получить основную информацию о профиле, но не другие. Для других полей я получаю пустой []. Что я здесь делаю неправильно?

+0

Вы уверены, что ваш ключ api может просмотреть полную информацию о профиле? Они могут ограничить объем данных, которые вы можете получить от пользователя. Это просто предположение, поскольку я не знаком с их API. – theartofbeing

+0

Ах! ты прав. Теперь я получаю неопределенную область неопределенности в 'r_fullprofile', но если я изменил ее на' r_basicprofile', я могу получить профиль Basic. Я читал где-то, что нам нужно заполнить эту форму https://developer.linkedin.com/partner-programs/apply. Это верно? для доступа к позициям и навыкам мне нужна доступность «r_fullprofile»? для области «r_fullprofile» мне нужно заполнить форму «партнерские программы»? –

+0

@AmitPal Я бы предложил закрыть этот вопрос, так как он, кажется, решен. Я также предлагаю задать вопросы о применении API на форуме - просто не на этом сайте. LinkedInDevs или другой носитель лучше всего помогут. – onebree

ответ

1

Я думаю, вам нужно запросить у Linkedin специальное разрешение на доступ к этим данным. r_fullprofile предназначен только для зарегистрированных API.

  • данных, который не требует какого-либо специального разрешения: r_basicprofile
  • Данные, которые необходимо применять для партнерской программы LinkedIn: r_fullprofile (See here)

Посмотрите this documentation in Linkedin's website

К применимо к программе Linkedin, visit this page

Я применил это утро, и они сказал, что они вернутся ко мне в течение 15 дней.

Удачи вам!

+0

Кажется, что я могу получить доступ к 'position' в области' r_basicprofile'.«Для всех разработчиков LinkedIn доступны следующие поля профилей: Основные поля профилей, Поля местоположения, Позиционные поля. Я получаю' [] 'или' Mash 0'. Почему это так? –

+0

Если вы хотите где вам нужно: –

+0

Если вы хотите получить доступ к позициям, вам необходимо: 1/добавить «позиции» в свою конфигурацию omniauth и 2/вернуть их (например) oauth.extra.raw_info.positions. Вы получите хэш с позициями вашего пользователя. [gist here] (https://gist.github.com/celine-ms/e3f393c9b0400d1b2fe0) –

 Смежные вопросы

  • Нет связанных вопросов^_^