マイムの部屋

社内SEが,興味をもったことを書いていきます.

Site Streamで特定のユーザからツイートを取得(TwitterAPI, Twitter4j, Java)

今回は,Twitter のStreaming APIの一種であるSite StreamをJavaで基本的なソースコードを書いたので,参考にしたい人は参考にしてください.
import twitter4j.FilterQuery;
import twitter4j.StallWarning;
import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.TwitterStream;
import twitter4j.TwitterStreamFactory;
import twitter4j.conf.Configuration;
import twitter4j.conf.ConfigurationBuilder;

public class FollowStream {    
    static class MyStatusListener implements StatusListener { 
		public void onStatus(Status status) {
	    try{
	 		// User オブジェクト取得
			System.out.println(status.getText());
	    } finally{
	    	
	    }
    }
          
        public void onDeletionNotice(StatusDeletionNotice sdn) {
            System.out.println("onDeletionNotice.");
        }

        public void onTrackLimitationNotice(int i) {
            System.out.println("onTrackLimitationNotice.(" + i + ")");
        }

        public void onScrubGeo(long lat, long lng) {
            System.out.println("onScrubGeo.(" + lat + ", " + lng + ")");
        }
    
        public void onException(Exception excptn) {
            System.out.println("onException.");
        }

		@Override
		public void onStallWarning(StallWarning arg0) {
			// TODO 自動生成されたメソッド・スタ	
		}
    }
    public static void main(String[] args) throws Exception {
        Configuration configuration = new ConfigurationBuilder().setOAuthConsumerKey(自分のCONSUMER_KEY)
                .setOAuthConsumerSecret(自分のCONSUMER_SECRET)
                .setOAuthAccessToken(自分のACCESS_TOKEN)
                .setOAuthAccessTokenSecret(自分のACCESS_TOKEN_SECRET)
                .build();
        
        TwitterStream twStream = new TwitterStreamFactory(configuration).getInstance();
        twStream.addListener(new MyStatusListener());
        
        //フィルターを設定する
        FilterQuery filter = new FilterQuery();
        filter.follow(new long[]{自分が収集したいユーザID}); // 例:{12,23,311,42342,15123213}
        twStream.filter(filter);
    }
}
結構調べても,なかった気がしたので苦労しました...

参考サイト