2011-04-23 70 views
0

我正在使用linkedin gem https://github.com/pengwynn/linkedin如何使用linkedin gem在rails中解析配置文件?

我授權使用Omniauth並存儲訪問令牌和機密。

然後我通過與客戶的訪問進行授權。

當我鍵入client.profile時,我似乎得到了一些有用的東西 - 但它看起來大多是Nokogiri,但在LinkedIn :: Profile類中。

我該如何專門訪問字段,並且能夠使用View中的方法調用,還是需要執行控制器中的所有分析並將這些值傳遞給View。

一旦我建立client.profile,如何訪問配置文件圖像URL,標題,名稱,公司等等。

當我使用(:域=>)我回來是這樣的:

#<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: 

我只想與節點「圖片網址」關聯的字符串...我怎麼做?

從控制器:

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

+0

你能發佈一個完整的backtrace爲你的錯誤嗎?你確定你上面例子中的所有標記實際上不是NIL嗎?嘗試在IRB控制檯中運行show方法中的所有命令,並查看其中哪一個導致回溯,然後專注於該命令及其參數 – 2011-05-01 22:07:15

回答

3

我做到了通過添加:

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

然後,這將允許我訪問特定的位置或字段,而無需進入原始xml,只需使用gem中的方法即可。一旦我得到格式,該寶石很好地工作...

1

我建議你從GitHub上的最新版本linked_in寶石。它使用Hashie/Mashie語法,這比處理Nokogiri輸出和XPath要簡單得多。 如果你使用的打捆添加到您的Gemfile(刪除任何其他linked_in寶石參考)

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

這個版本的寶石基本上堅持你的輸出Linked In上搜索到一個哈希,所以你會訪問你的圖像 - url字符串如下:profileHash [「picture-url」]

PS如果您決定堅持使用您的linked_in gem版本,請熟悉XPath語法,您將需要它。根據您所提供的信息,圖片URL字符串將可通過profileXML.xpath(「//人/圖片的URL」)first.text

+0

hello!是的,我嘗試使用Git版本....也許我需要先卸載並給它一個旋轉...謝謝,會讓你張貼。 – Angela 2011-04-26 02:00:23

+0

嗨,我做了更改,它仍然看起來像是返回一個Linkedin :: Profile類,它是一個Nokogiri的@doc ...將更新我在我的控制器中的內容 – Angela 2011-04-26 13:03:04

+0

然後你沒有得到正確的版本。在https://github.com/pengwynn/linkedin/tree/master/lib/linked_in查看master分支的源代碼 - 沒有Profile類(它存在於舊版本中) – 2011-04-26 19:03:21