package twitterbotics; import twitter4j.*; import twitter4j.auth.AccessToken; import twitter4j.conf.ConfigurationBuilder; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URLEncoder; import java.util.List; public class TweetSearcher extends Dribbler { private static String CONSUMER_KEY = "dGESUpwS6sbOXb6I3vmTH53Qx"; private static String CONSUMER_SECRET = "Never store a secret token openly in your code"; private static String ACCESS_TOKEN = "752908753721237504-knMgQhhj3vxz9t9zjsEgVUtf8zT3jpf"; private static String ACCESS_SECRET = "Never store a secret token openly in your code"; //--------------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------------// // Return an instance of a Twitter connection object //--------------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------------// public Twitter getTwitter() throws TwitterException, IOException { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(CONSUMER_KEY) .setOAuthConsumerSecret(CONSUMER_SECRET) .setOAuthAccessToken(ACCESS_TOKEN) .setOAuthAccessTokenSecret(ACCESS_SECRET); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = tf.getInstance(); twitter.setOAuthAccessToken(new AccessToken(ACCESS_TOKEN, ACCESS_SECRET)); return twitter; } //--------------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------------// // Main application stub //--------------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------------// public static void main(String[] args) { String queryString = "Obama"; String dir = "/Users/tonyveale/Desktop/SemEval 2015/"; try { TweetSearcher searcher = new TweetSearcher(); Twitter twitter = searcher.getTwitter(); Query query = new Query().query(queryString).resultType(Query.RECENT); query.count(10); QueryResult result; searcher.openDribbleFile(dir + "metaphorical tweets.idx"); do { result = twitter.search(query); System.out.println(query + "\n"); List<Status> tweets = result.getTweets(); for (Status tweet : tweets) { long id = tweet.getId(); StringBuffer text = new StringBuffer(tweet.getText()); for (int i = 0; i < text.length(); i++) if (text.charAt(i) == '\n') text.setCharAt(i, ' '); searcher.printlnDribbleFile(id + "\t" + text + "\t" + tweet.getRetweetCount()); } } while ((query = result.nextQuery()) != null); System.exit(0); } catch (Exception te) { te.printStackTrace(); System.out.println("Failed to search tweets: " + te.getMessage()); System.exit(-1); } } }