2014-09-27 66 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