import twitter4j.*; import twitter4j.auth.OAuth2Token; import twitter4j.conf.ConfigurationBuilder; import java.util.Map; public class Main { private static final String CONSUMER_KEY = "..."; private static final String CONSUMER_SECRET = "..."; public static OAuth2Token getOAuth2Token() { OAuth2Token token = null; ConfigurationBuilder cb; cb = new ConfigurationBuilder(); cb.setApplicationOnlyAuthEnabled(true); cb.setOAuthConsumerKey(CONSUMER_KEY).setOAuthConsumerSecret(CONSUMER_SECRET); try { token = new TwitterFactory(cb.build()).getInstance().getOAuth2Token(); } catch (Exception e) { System.out.println("Could not get OAuth2 token"); e.printStackTrace(); System.exit(0); } return token; } public static void main(String[] args) { OAuth2Token token; token = getOAuth2Token(); ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setApplicationOnlyAuthEnabled(true); cb.setOAuthConsumerKey(CONSUMER_KEY); cb.setOAuthConsumerSecret(CONSUMER_SECRET); cb.setOAuth2TokenType(token.getTokenType()); cb.setOAuth2AccessToken(token.getAccessToken()); Twitter twitter = new TwitterFactory(cb.build()).getInstance(); // Now do a simple search to show that the tokens work try { Map rateLimitStatus = twitter.getRateLimitStatus("search"); RateLimitStatus searchTweetsRateLimit = rateLimitStatus.get("/search/tweets"); System.out.printf("You have %d calls remaining out of %d, Limit resets in %d seconds\n", searchTweetsRateLimit.getRemaining(), searchTweetsRateLimit.getLimit(), searchTweetsRateLimit.getSecondsUntilReset()); Query q = new Query("java programming"); // Search for tweets that contain these two words q.setCount(100); // Let's get all the tweets we can in one call q.resultType("recent"); // Get all tweets q.setLang("en"); // English language tweets, please QueryResult r = twitter.search(q); // Make the call for (Status s: r.getTweets()) // Loop through all the tweets... { System.out.printf("At %s, @%-20s said: %s\n", s.getCreatedAt().toString(), s.getUser().getScreenName(), s.getText()); } } catch (Exception e) { System.out.println("That didn't work well...wonder why?"); e.printStackTrace(); } // That's all, folks! } }