Ruby on rails 我如何使用linkedin gem解析rails中的配置文件?

Ruby on rails 我如何使用linkedin gem解析rails中的配置文件?,ruby-on-rails,ruby,nokogiri,linkedin,Ruby On Rails,Ruby,Nokogiri,Linkedin,我正在使用linkedin gem 我授权使用Omniauth并存储访问令牌和机密 然后,我通过访问客户端进行授权 当我键入client.profile时,我似乎得到了一些有用的东西——但它看起来大部分像Nokogiri,但在LinkedIn::profile类中 我如何具体地访问字段,我将能够使用rails中视图的方法调用,还是需要在控制器中执行所有解析并从那里将这些值传递给视图 关于如何访问配置文件图像url、标题、名称、公司的示例一旦我建立了client.profile,这类内容将非常有用

我正在使用linkedin gem

我授权使用Omniauth并存储访问令牌和机密

然后,我通过访问客户端进行授权

当我键入client.profile时,我似乎得到了一些有用的东西——但它看起来大部分像Nokogiri,但在LinkedIn::profile类中

我如何具体地访问字段,我将能够使用rails中视图的方法调用,还是需要在控制器中执行所有解析并从那里将这些值传递给视图

关于如何访问配置文件图像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:
新错误:

undefined method `downcase' for nil:NilClass

这里有一个相关的问题:“

我建议您从github获得gem中linked_的最新版本。它使用Hashie/Mashie语法,这比处理Nokogiri输出和XPath简单得多。 如果您正在使用bundler,请将其添加到gem文件中(删除gem引用中的任何其他链接_)

这个版本的gem基本上将链接搜索的输出粘贴到一个散列中,因此您可以按如下方式访问图片url字符串:profileHash[“图片url”]


另外,如果您决定继续使用gem中的linked_版本,请熟悉XPath语法,您将需要它。根据您提供的信息,图片url字符串将通过profileXML.xpath(“//person/picture url”)提供。首先,text

我建议您从github获得gem中链接的最新版本。它使用Hashie/Mashie语法,这比处理Nokogiri输出和XPath简单得多。 如果您正在使用bundler,请将其添加到gem文件中(删除gem引用中的任何其他链接_)

这个版本的gem基本上将链接搜索的输出粘贴到一个散列中,因此您可以按如下方式访问图片url字符串:profileHash[“图片url”]

另外,如果您决定继续使用gem中的linked_版本,请熟悉XPath语法,您将需要它。根据您提供的信息,图片url字符串将通过profileXML.xpath(“//person/picture url”)提供。首先.text

我添加了:

client.profile(:fields => [:positions]).positions
这将允许我访问特定的位置或字段,而无需进入原始xml,只需使用gem中的方法。一旦我得到格式,gem就可以很好地工作…

我通过添加:

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

这将允许我访问特定的位置或字段,而无需进入原始xml,只需使用gem中的方法。一旦我得到格式,gem就可以很好地工作…

您好!是的,我试过使用git版本…也许我需要先卸载并试一试…谢谢,这会让你知道的。嗨,我做了更改,看起来它仍然返回一个Linkedin::Profile类,带有一个@doc,是Nokogiri…当你没有得到正确的版本时,它会更新我控制器中的内容。查看master branch的源代码-,没有配置文件类(它在旧版本中确实存在),我明白了…我想我仍然不清楚该做什么,那么…我要声明客户端,然后应用什么方法吗?@Vladimir,这是我在bundler中显示的--看起来像是最新的。bundler/ruby/1.8/linkedin-3B660CE1465Hello!是的,我试过使用git版本…也许我需要先卸载并试一试…谢谢,这会让你知道的。嗨,我做了更改,看起来它仍然返回一个Linkedin::Profile类,带有一个@doc,是Nokogiri…当你没有得到正确的版本时,它会更新我控制器中的内容。查看master branch的源代码-,没有配置文件类(它在旧版本中确实存在),我明白了…我想我仍然不清楚该做什么,那么…我要声明客户端,然后应用什么方法吗?@Vladimir,这是我在bundler中显示的--看起来像是最新的。bundler/ruby/1.8/linkedin-3B660CE1465C您可以发布一个完整的回溯记录来记录您的停机错误吗?您确定上面示例中的所有令牌实际上都不是零吗?尝试在IRB控制台中运行show方法中的所有命令,看看哪一个命令会导致回溯,然后关注该命令及其参数扫描是否发布了针对downcase错误的完整回溯?您确定上面示例中的所有令牌实际上都不是零吗?尝试在IRB控制台中运行show方法中的所有命令,看看哪一个命令会导致回溯,然后关注该命令及其参数
client.profile(:fields => [:positions]).positions