Skip to content

Basic Twitter stream reading using Twitter4j

qtips edited this page Jan 23, 2014 · 8 revisions
  1. Authentication:
 ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        configurationBuilder.setOAuthConsumerKey(_consumerKey)
                .setOAuthConsumerSecret(_consumerSecret)
                .setOAuthAccessToken(_accessToken)
                .setOAuthAccessTokenSecret(_accessTokenSecret);
  1. Initiate twitter stream using authentication
 TwitterStream twitterStream = new TwitterStreamFactory(configurationBuilder.build()).getInstance();
  1. Add listener the stream reader
 twitterStream.addListener(new StatusListener () {
      public void onStatus(Status status) {
         System.out.println(status.getText()) // print tweet text to console
      }
      ....
  1. Create a filter for tweets containing "Bieber" or "Teletubbies" tweeted from USA in english, and add it to the stream reader. Look here for latitude/longitude values
FilterQuery tweetFilterQuery = new FilterQuery(); // See 
tweetFilterQuery.track(new String[]{"Bieber", "Teletubbies"}); // OR on keywords
tweetFilterQuery.locations(new double[][]{new double[]{-126.562500,30.448674},
                new double[]{-61.171875,44.087585
                }}); // See https://dev.twitter.com/docs/streaming-apis/parameters#locations for proper location doc. 
//Note that not all tweets have location metadata set.
tweetFilterQuery.language(new String[]{"en"}); // Note that language does not work properly on Norwegian tweets 
  1. Start listening to tweets using our filter!
twitterStream.filter(tweetFilterQuery);
Clone this wiki locally