如何同时收听数以千计的推特账号?

时间:2016-08-25 18:19:17

标签: java twitter twitter4j twitter-streaming-api

我正在构建一个应用程序,可以监控多个Twitter帐户(~10K)的最新活动,并根据这些进行一些分析。我能够为一个这样的Twitter帐户创建一个监听器,并通过Twitter4j提供的流API进行处理。但是,我无法弄清楚如何为数千个帐户并行复制此模型。尝试通过网络寻找它,但找不到任何满意的答案。它真的可以实现吗?或者我是否需要考虑其他方法?任何帮助都将受到高度赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想关注某些用户,则应使用过滤器。 Twitter Api允许您通过他们的ID跟踪5000个用户,其中包含一个凭据,如下所示:

StatusListener statusListener = new StatusListener() {
    @Override
    public void onStatus(Status status) {
        //your code to manage the statuses
    }
    //other requiredly-overriden methods
}
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.setOAuthConsumerKey("XXXXX");
configurationBuilder.setOAuthConsumerSecret("XXXXXXX");
TwitterStream twitterStream = new TwitterStreamFactory(configurationBuilder.build()).getInstance(new AccessToken("XXXXX", "XXXXXXX"));
twitterStream.addListener(statusListener);

//from here is different at your code

//you need to set up your user list, with their users id's!
long[] userslist = YOUR USER LIST;
//then you create a filter
FilterQuery filtre = new FilterQuery();
//and use that filter to follow the users that you want and to start the stream
filtre.follow(userslist);
twitterStream.filter(filtre);

使用过滤器,您可以跟踪多达5000个不同的用户,当他们被转发以及被提及时,您将获得他们的推文。