2014-02-18 58 views
2

我想在特定用戶推文時執行某些操作。那麼是否有可能在twitter4j上收聽來自特定用戶帳戶的推文並處理該事件?Twitter4j收聽特定用戶的推文

我知道答案是什麼:閱讀流式API。但我認爲它對我的目的來說太大了,我只想聽一個特定賬戶的推文。因此我在這裏問。

回答

5

你應該嘗試的示例代碼:

TwitterStream twitterStream = new TwitterStreamFactory(new ConfigurationBuilder().setJSONStoreEnabled(true).build()).getInstance(); 

    twitterStream.setOAuthConsumer(_consumerKey, _consumerSecret); 
    AccessToken token = new AccessToken(_accessToken, _accessTokenSecret); 
    twitterStream.setOAuthAccessToken(token); 

    StatusListener listener = new StatusListener() { 
     public void onStatus(Status status) { 
      logger.info(DataObjectFactory.getRawJSON(status)); 

      //do your action here 
     } 

     ... 
    }; 

    twitterStream.addListener(listener); 

    FilterQuery query = new FilterQuery(); 
    query.follow(new long[] { _twitterUserId }); 
    twitterStream.filter(query); 
} 
+0

我猜twitterStream聽tweetts的隨機樣本。所以我不確定這個代碼是否會聽取用戶的所有推文。它可能錯過了一些推文。你對此有何評論? – rahulserver

+0

它偵聽來自具有id - twitterUserId的特定用戶的推文。 – LTC

+0

您可以申請(並支付)Twitter的流水賬,以流式方式訪問所有內容。授予訪問權限相當簡單。 – hd1