【发布时间】:2017-09-16 12:13:05
【问题描述】:
我一直在搞乱 twitter rails API,但在获取推文的位置时遇到了麻烦。这似乎总是失败并且不返回任何东西。我也尝试过 tweet.coordinates,但它似乎不起作用。
tweets = client.user_timeline("gems")
puts "size : #{tweets.size}"
tweets.each do |tweet|
if(tweet.place)
puts tweet.place.attributes
end
end
我正在使用以下 twitter gem。 https://github.com/sferik/twitter
编辑:
tweets = client.search("a", geocode: "40.7128,-74.0059,50mi").take(100)
tweets.each do |tweet|
if tweet.place?
puts tweet.place.full_name
elsif tweet.geo?
puts "geofound"
elsif tweet.user.location?
puts tweet.user.location
end
所以我尝试使用上面的代码寻找具有地理编码的推文,但似乎它们都没有地点或地理字段,并且它总是返回 tweet.user.location,但这不是很准确。输出只有很多纽约的,但也有来自其他城市的一堆,所以我真的不知道当其他城市不存在/远离纽约时 Twitter 是如何获得这些查询的。我错过了另一个位置字段吗?我还注意到输出的数量不等于推文数组的大小。
这是一个示例输出
【问题讨论】:
-
你的输出是什么?它是否正确显示尺寸?您可以在循环体的第一行尝试
puts tweet.inspect以查看推文是否存在。 -
大小为20。我试过输出文本,它们都很好。
-
推文是否真的包含地理元数据?并非所有推文都这样做 - 需要选择正确的帐户。即使在 Twitter 的示例输出中,place 也是 null dev.twitter.com/rest/reference/get/statuses/user_timeline
-
@KZeng 你能做
tweet.inspect并将结果与问题一起粘贴吗? -
是的,我注意到并非所有人都有正确的元数据,所以我尝试使用地理编码选项搜索内容,但仍然没有运气。带有地理元数据的推文很少见吗?
标签: ruby-on-rails ruby twitter