Как я использовал gem для разбора профиля в рельсах? - PullRequest
0 голосов
/ 24 апреля 2011

Я использую драгоценный камень linkedin https://github.com/pengwynn/linkedin

Я авторизуюсь с помощью Omniauth и сохраняю токен доступа и секреты.

Затем я авторизуюсь путем доступа с клиентом.

Мне кажется, что я получаю что-то полезное, когда набираю client.profile, но похоже, что это в основном Nokogiri, но в классе LinkedIn :: Profile.

Как мне конкретно обращаться к полям, и смогу ли я использоватьвызовы методов из View в rails или мне нужно выполнить весь анализ в контроллере и передать эти значения в View оттуда.

Пример доступа к URL-адресу изображения, названию, имени, компании, профилютакого рода вещи, как только я установил client.profile, было бы замечательно.

Когда я использую (: fields =>), я получаю что-то вроде этого:

#<LinkedIn::Profile:0xb682c72c @doc=#<Nokogiri::XML::Document:0x..fdb41630a name="document" children=[#<Nokogiri::XML::Element:0x..fdb415fae name="person" children=[#<Nokogiri::XML::Text:0x..fdb415d88 "\n  ">, #<Nokogiri::XML::Element:0x..fdb415d24 name="picture-url" children=[#<Nokogiri::XML::Text:0x..fdb415aae "http://media.linkedis:

Я просто хочустрока, связанная с узлом "picture-url" ... как мне это сделать?

От контроллера:

7   `def show`
  8     @user = User.find(params[:id]) 
  9     @client = LinkedIn::Client.new(ENV["LINKEDIN_KEY"], ENV["LINKEDIN_SECRET"]) 
 10     @client.authorize_from_access(@user.atoken, @user.asecret) 
 11     @client.profile(:id => @user.uid, :fields => ["picture-url", "headline"]) 
 12     
 13   end 

Новая ошибка:

undefined method `downcase' for nil:NilClass

Вот связанный вопрос: "https://stackoverflow.com/questions/5821549/how-do-i-pass-a-a-tag-through-ruby-to-linkedin-using-the-gem"

Ответы [ 2 ]

3 голосов
/ 13 мая 2011

Я сделал это, добавив:

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

Это позволило бы мне получить доступ к определенным позициям или полям, не заходя в необработанный XML, просто используя методы в геме. Драгоценный камень работает хорошо, как только я получаю формат ...

1 голос
/ 26 апреля 2011

Я советую вам получить последнюю версию gem для related_in от github. Он использует синтаксис Hashie / Mashie, который намного проще, чем работа с выводом Nokogiri и XPath. Если вы используете bundler, добавьте это в свой Gemfile (удалив любую другую ссылку на gem related_in)

gem 'linkedin', :git => "git://github.com/pengwynn/linkedin.git"

эта версия драгоценного камня в основном вставляет выходные данные поиска в Linked In в хеш, поэтому вы получите доступ к строке URL-адреса изображения следующим образом: profileHash ["picture-url"]

P.S. если вы решите придерживаться своей версии gem connected_in, ознакомьтесь с синтаксисом XPath, он вам понадобится. На основании предоставленной вами информации строка URL-адреса изображения будет доступна через profileXML.xpath ("// person / picture-url"). First.text

...