2014-09-27 82 views

回答

0

如果您希望基于某个查询过滤器获得持续不断的推文流,请在Twitter4j中实施StatusListener类。 还实现的onStatus(状态状态)function.Below就是一个例子 -

import twitter4j.*; 

public class TwitterListener implements StatusListener { 
    public void onException(Exception ex) { 
     ex.printStackTrace(); 
    } 
    public void onStatus(Status status) { 
     if(status.getUser().getLang().equalsIgnoreCase("en") 
       || status.getUser().getLang().equalsIgnoreCase("en_US")) { 

      String twitterStream = String.valueOf(status.getId()) 
       + "\t" + status.getUser().getScreenName() 
       + "\t" + status.getText() 
       + "\t" + status.getCreatedAt(); 

      System.out.println(twitterStream); 
     } 
    } 

    public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { 
    } 
    public void onTrackLimitationNotice(int numberOfLimitedStatuses) { 
    } 
    public void onScrubGeo(long userId, long upToStatusId) { 
    } 
    public void onStallWarning(StallWarning warning) { 
    } 
} 

创建一个类来初始化和钩到Twitter状态流,代码会像下面 -

ConfigurationBuilder twitterConfigBuilder = new ConfigurationBuilder(); 
twitterConfigBuilder.setOAuthConsumerKey("consumerKey"); 
twitterConfigBuilder.setOAuthConsumerSecret("consumerSecret"); 
twitterConfigBuilder.setOAuthAccessToken("accessToken"); 
twitterConfigBuilder.setOAuthAccessTokenSecret("accessTokenSecret"); 

TwitterListener twitterListener = new TwitterListener(); 

TwitterStream twitterStream 
     = new TwitterStreamFactory(twitterConfigBuilder.build()).getInstance(); 

// Register your Listener 
twitterStream.addListener(twitterListener); 

FilterQuery query = new FilterQuery(); 
ArrayList<String> trackList = new ArrayList<String>(); 
// TODO, add the list of words you want to track 
query.track(trackList.toArray(new String[trackList.size()])); 

twitterStream.filter(query); 

你现在应该能够获得连续不断的推文,您可以尝试更多关于您想要应用的过滤器种类。

+0

这可以帮助我很多,谢谢! – Heba 2014-09-27 21:22:10

+0

请问,有没有一种方法来过滤从鸣叫包含的链接返回的鸣叫?我试图添加到trackList“-filter:links test”,其中test是我想跟踪的单词,但它不起作用。注意:“-filter:links test”在搜索时可以正常查询。 – Heba 2014-09-28 05:23:59

+0

你是否只想得到那些在其内容中具有“测试”的推文?只需将“test”添加到trackList即可。在这里检查搜索查询规则 - https://dev.twitter.com/rest/public/search – mbaxi 2014-09-28 16:57:34