package glaze.examples.twitter; import glaze.examples.twitter.api.TwitterApi; import glaze.examples.twitter.api.stream.Tweet; import glaze.examples.twitter.client.PreemptiveTwitterClient; import glaze.examples.twitter.client.TwitterConfig; import glaze.examples.twitter.client.TwitterFlow; import java.io.IOException; import glaze.oauth.util.ConsoleFlow; import oauth.signpost.exception.OAuthException; public class App { public static void main(String[] args) throws IOException, OAuthException { App app = new App(); app.homeTimeline(); System.exit(0); } private final TwitterApi api; public App() { api = new TwitterApi(new PreemptiveTwitterClient()); setShutdownHook(); } /** * Start an authentication console flow. * * @throws OAuthException * @throws IOException */ public void flow() throws OAuthException, IOException { TwitterFlow flow = new TwitterFlow(new TwitterConfig()); ConsoleFlow.execute(flow); } /** * Get your home tweets. */ public void homeTimeline() { Tweet[] tweets = api.homeTimeline(); for (Tweet tweet : tweets) { System.out.println(tweet); } } private void setShutdownHook() { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { api.shutdown(); } }); } }