ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 我可以请求/过滤twitter流API以仅返回带有地理标记的推文吗?

2019-06-13 13:51:54  阅读:252  来源: 互联网

标签:java twitter twitter4j


我正在使用twitter4j库访问公共twitter流.我正在尝试制作涉及地理标记推文的项目,我需要收集大量的推文进行测试.

现在我从twitter获得未经过滤的流,只保存带地理标记的推文.这很慢,因为VAST的大部分推文都没有地理标签.我希望twitter流只向我发送带有地理标记的推文.

我已经尝试过使用this question中提到的方法,在这里使用大小为360 * 180 *的边界框进行过滤,但这对我不起作用.使用该过滤器时我没有收到任何错误,但我仍然得到99%没有地理标记的推文.我是这样做的:

ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
    .setOAuthConsumerKey("censored")
    .setOAuthConsumerSecret("censored")
    .setOAuthAccessToken("censored")
    .setOAuthAccessTokenSecret("censored");

TwitterStream twitterStream = newTwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new MyStatusListener();
twitterStream.addListener(listener);

//add location filter for what I hope is the whole planet. Just trying to limit
//results to only things that are geotagged
FilterQuery locationFilter = new FilterQuery();
double[][] locations = {{-180.0d,-90.0d},{180.0d,90.0d}};

locationFilter.locations(locations);

twitterStream.filter(locationFilter);

twitterStream.sample();

有关为什么我仍然收到没有地理标记的推文的任何建议?

编辑:我刚刚重新阅读了关于在Twitter流中添加过滤器的twitter4j javadoc,并且它说“默认访问级别允许最多200个跟踪关键字,400个跟随用户标识和10个1度位置框”.边界框可能只有1度宽?这与我遇到的原始信息不同.那是我的问题吗?我的过滤请求太大,以至于被忽略了?尝试使用它时我没有收到任何错误.

解决方法:

从过滤器流获取然后用样本流覆盖它.

删除最后一行:twitterStream.sample();

标签:java,twitter,twitter4j
来源: https://codeday.me/bug/20190613/1233011.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有