使用tweet4j按位置获取推文

时间:2015-10-21 09:43:52

标签: java twitter twitter4j

我想在河内收到推文。

1)我使用了搜索查询,但收到了重复的推文,如何避免这种情况?

Query query = new Query(queryString);
       GeoLocation city = new GeoLocation(latitude, longitude);
       query.geoCode(city, 20, "mi");

2)什么是tweetID?它是否随着时间的推移而增加?我可以将query.setSinceId();与最后一次回复的maxID一起使用吗?

3)我尝试其他方式使用流来获取推文,但是它的接收推文不在我想要的区域(例如:来自中国或老挝)我错了吗?

 double lat = 21.082647;
 double lon = 105.822526;
 double lon1 = lon - 0.05;
 double lon2 = lon + 0.05;
 double lat1 = lat - 0.05;
 double lat2 = lat + 0.05;
 double box[][] = {{lon1, lat1}, {lon2, lat2}};
 fq.locations(box);

3 个答案:

答案 0 :(得分:0)

Search API似乎并不是您正在寻找的内容,因为它只会返回相关推文(最近和最受欢迎的推文)。如果您想获得完整的推文列表,那么您需要Streaming API

在你的纬度/长度输入之后,你会在你想要的区域之外得到一些推文(它只是少数)你可以通过后期处理过滤。至少在这一点上,您获得的搜索API比搜索API更完整。

我不确定你从中国或老挝获得了多少,但你可以随时改进你的界限,将其限制在河内。我相信你所拥有的有点太小+/- .05不大可能access_token可能有所帮助。

答案 1 :(得分:0)

如果推文没有明确地标记,推特的API首先搜索地理标记的推文并回退到用户个人资料位置。这可能是您的搜索从边界以外的位置返回推文的原因。

例如:

假设您正在搜索包含查询的推文的河内地理位置。搜索将从包含查询的Hanoi返回显式地理标记的推文。搜索还将返回来自不同地理位置的推文,其中包含具有位于河内的个人资料位置的用户的查询。

答案 2 :(得分:0)

我认为你的过滤器是错误的。限制更多,以便找到解决方案