如何提取foursquare2 gem结果(Hashie :: Mash)

时间:2013-08-30 03:28:51

标签: ruby api gem foursquare

我在尝试提取foursquare2 gem响应字段时遇到问题。这是我的代码:

   require 'foursquare2'

   client = Foursquare2::Client.new(:client_id => 'XYZ', :client_secret => 'XYZ')

   tips = client.venue_tips('4d169843b15cb1f7f4c4ae21')

然后我得到了结果:

#<Hashie::Mash count=8 items=[#<Hashie::Mash     canonicalUrl="https://foursquare.com/item/4f689747e4b04ab624cce6d3" createdAt=1332254535   done=#<Hashie::Mash count=1> id="4f689747e4b04ab624cce6d3" lang="pt" likes=#<Hashie::Mash count=2 groups=[#<Hashie::Mash count=2 items=[#<Hashie::Mash bio="" contact=#<Hashie::Mash> firstName="Pedro" gender="male" homeCity="Recife, Brasil" id="19761425" lastName="T." photo="https://is1.4sqi.net/userpix_thumbs/G5R14BT031K2B2AX.jpg" tips=#<Hashie::Mash count=25>>, #<Hashie::Mash bio="" contact=#<Hashie::Mash> firstName="Nat\u00E1lia" gender="female" homeCity="Recife, Brasil" id="12706383" lastName="S."
photo="https://is0.4sqi.net/userpix_thumbs/UF0Q0OZFWNQLXRFG.jpg" tips=#<Hashie::Mash count=1>>] type="others">] summary="2 likes"> text="Nova padaria com bons  produtos, destaque para as formadas de p\u00E3o \u00E0 tarde."

我希望获得一些 tips.firstName 来获取这些值,但它不起作用。我应该更喜欢REST API吗?!

先谢谢你们,伙计们。

在评论后编辑

我按照建议提供的解决方案:

tips.groups[0].items.each{|i| puts i.firstName}

但它不起作用。我刚收到错误:data_scraping_fq.rb:16:<main>': undefined method []'为nil:NilClass(NoMethodError)

1 个答案:

答案 0 :(得分:1)

当您使用venues/tips端点时,

tips.firstName将无效。当您使用Foursquare API资源管理器时,请查看JSON响应,您将看到要获取提示提交者的名字,您需要查看`tips.items