List of usage examples for twitter4j TwitterException getMessage
@Override
public String getMessage()
From source file:crawling.GetUserTimelineByFile.java
License:Apache License
public static void main(String[] args) { if (args.length < 1) { System.out.println("Usage: java twitter4j.examples.GetUserTimelineByFile UserFile"); System.exit(-1);/*ww w. j a v a 2s . com*/ } userFile = args[0]; try { FileWriter outFileWhole = new FileWriter("CrawlTweets" + ".txt", true); out = new PrintWriter(outFileWhole); // out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } File inFile = new File(userFile); if (!inFile.isFile()) { System.out.println("Parameter is not an existing file"); return; } BufferedReader br = null; try { br = new BufferedReader(new FileReader(userFile)); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // gets Twitter instance with default credentials Twitter twitter = new TwitterFactory().getInstance(); int count = 0; int totalCount = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy, MM, dd"); Date start = null; try { start = sdf.parse("2000, 1, 1"); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } List<Status> statuses = null; // String user = "Porter_Anderson"; // user = "pqtad"; // user = "paradunaa6"; // user = "palifarous"; ArrayList<Long> users = new ArrayList<Long>(); String line = null; //Read from the original file and write to the new //unless content matches data to be removed. try { while ((line = br.readLine()) != null) users.add(Long.parseLong(line)); br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //users.add(584928891L); //users.add(700425265L); DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println(); System.out.println("----------------------------------------------"); System.out.println("Start at: " + dateFormat.format(date)); Long sinceID = //218903304682471424L; // 2012/06/29 238893053518151680L; // 2012/08/24 Long maxID = 250409135600975873L; // 2012/09/24 //238893053518151680L; // 2012/08/24 // 227659323180974080L; // 2012/07/24 boolean overflow = false; for (Long usr : users) { System.out.println("%" + usr); out.println("%" + usr); out.println("%" + usr); Paging paging = null; count = 0; for (int i = 1; i < 21; i++) { //paging = new Paging(i, 200); paging = new Paging(i, 200, sinceID, maxID); overflow = false; try { // statuses = twitter.getUserTimeline(user, paging); statuses = twitter.getUserTimeline(usr, paging); Thread.currentThread(); try { Thread.sleep(10500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (TwitterException te) { te.printStackTrace(); System.out.println("Failed to get timeline: " + te.getMessage()); //System.exit(-1); } if (statuses.isEmpty()) { if (i > 16) overflow = true; break; } for (Status status : statuses) { String record = ""; record += status.getId(); record += "::" + status.getInReplyToStatusId(); record += "::" + status.getInReplyToUserId(); record += "::" + status.getRetweetCount(); if (status.getRetweetedStatus() != null) record += "::" + status.getRetweetedStatus().getId(); else record += "::" + "-1"; //record += "::" + status.isRetweet(); int len = status.getUserMentionEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { UserMentionEntity ent = status.getUserMentionEntities()[l]; record += "," + ent.getId(); } } else record += "::" + "-1"; len = status.getURLEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { URLEntity ent = status.getURLEntities()[l]; record += "," + ent.getURL() + "|" //+ ent.getDisplayURL() + "|" + ent.getExpandedURL(); } } else record += "::" + "-1"; record += "::" + cleanText(status.getText()); record += "::" + // status.getCreatedAt(); (status.getCreatedAt().getTime() - start.getTime()) / 1000; record += "::" + getSource(status.getSource()); //System.out.println(record); out.println(record); } count += statuses.size(); out.flush(); } totalCount += count; out.println("%" + usr + ", " + count + ", " + overflow); System.out.println("%" + usr + ", " + count + ", " + overflow); out.println("------------------------------------------"); } System.out.println("Total status count is " + totalCount); out.println("#" + totalCount); out.close(); date = new Date(); System.out.println(); System.out.println("----------------------------------------------"); System.out.println("End at: " + dateFormat.format(date)); }
From source file:crawling.GetUserTimelineByFileDiff.java
License:Apache License
public static void main(String[] args) { if (args.length < 1) { System.out.println("Usage: java twitter4j.examples.GetUserTimelineByFile UserFile"); System.exit(-1);//from w ww. j ava 2 s . com } userFile = args[0]; try { FileWriter outFileWhole = new FileWriter("CrawlTweets" + ".txt", true); outWhole = new PrintWriter(outFileWhole); FileWriter outFileInter = new FileWriter("CrawlInter" + ".txt", true); outInter = new PrintWriter(outFileInter); // out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } File inFile = new File(userFile); if (!inFile.isFile()) { System.out.println("Parameter is not an existing file"); return; } BufferedReader br = null; try { br = new BufferedReader(new FileReader(userFile)); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // gets Twitter instance with default credentials Twitter twitter = new TwitterFactory().getInstance(); int count = 0; int countInter = 0; int totalCount = 0; int totalCountInter = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy, MM, dd"); Date start = null; try { start = sdf.parse("2000, 1, 1"); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } List<Status> statuses = null; // String user = "Porter_Anderson"; // user = "pqtad"; // user = "paradunaa6"; // user = "palifarous"; // statuses = twitter.getUserTimeline(user); //String usersS = "490495670,210462629,731570426,174646182,381163846,308812526,595154838,47356666,590795627,466854690,560386951,406747522,767819150,193105498,725874775,381257304,486727765,39469575,68239634,187739283,27048882,172979072,16075589,618047540,841958365,707631710,76274554,334451278,573978436,782711790,498017142,764236789,88185343,293950091,726606902,221410697,566098451,32987449,73497385,223182159,571182929,769441794,16225570,404748449,249953519,713693096,727692930,178473099,366957548,255171527,411892240,370333418,753509292,765928471,49389074,422867487,185298515,112841821,524731824,132207254,431289858,35602356,747638244,76398937,276388822,221106768,608597994,532423674,509070257,235773945,263995811,61575477,48606725,518136068,450781132,631504150,842236698,840479664,306291201,59829276,541212815,264436593,262466303,302157661,135587748,399229428,265344815,225280446,540254332,218019401,260453139,187424025,177051847,351065900,406684867,293234971,219356963,280763734,59290083,214750688"; //String[] splits = usersS.split(","); ArrayList<Long> users = new ArrayList<Long>(); String line = null; //Read from the original file and write to the new //unless content matches data to be removed. try { while ((line = br.readLine()) != null) { users.add(Long.parseLong(line)); } br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //users.add(584928891L); //users.add(700425265L); DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); System.out.println(); System.out.println("----------------------------------------------"); System.out.println("Start at: " + dateFormat.format(date)); Long sinceID = //218903304682471424L; // 2012/06/29 238893053518151680L; // 2012/08/24 Long maxID = 250409135600975873L; // 2012/09/24 //238893053518151680L; // 2012/08/24 // 227659323180974080L; // 2012/07/24 boolean overflow = false; for (Long usr : users) { System.out.println("%" + usr); outWhole.println("%" + usr); outInter.println("%" + usr); Paging paging = null; count = 0; countInter = 0; for (int i = 1; i < 21; i++) { //paging = new Paging(i, 200); paging = new Paging(i, 200, sinceID, maxID); overflow = false; try { // statuses = twitter.getUserTimeline(user, paging); statuses = twitter.getUserTimeline(usr, paging); Thread.currentThread(); try { Thread.sleep(10500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (TwitterException te) { te.printStackTrace(); System.out.println("Failed to get timeline: " + te.getMessage()); //System.exit(-1); } if (statuses.isEmpty()) { if (i > 16) overflow = true; break; } for (Status status : statuses) { boolean inter = false; //countRT += status.getRetweetCount(); String record = ""; String recordInter = ""; record += status.getId(); // For reply Long replyId = status.getInReplyToStatusId(); if (replyId == -1) record += "::-1::-1"; else { record += "::" + replyId; record += "::" + status.getInReplyToUserId(); inter = true; } // For retweeting Long retweets = (long) status.getRetweetCount(); record += "::" + retweets; if (retweets > 0) { inter = true; if (status.getRetweetedStatus() != null) record += "::" + status.getRetweetedStatus().getId(); else record += "::" + "-1"; // The source of retweeting } //record += "::" + status.isRetweet(); // For mentions int len = status.getUserMentionEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { UserMentionEntity ent = status.getUserMentionEntities()[l]; record += "," + ent.getId(); } inter = true; } else record += "::" + "-1"; recordInter += record; // For URL len = status.getURLEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { URLEntity ent = status.getURLEntities()[l]; record += "," + ent.getURL() + "|" //+ ent.getDisplayURL() + "|" + ent.getExpandedURL(); } } else record += "::" + "-1"; // For text record += "::" + cleanText(status.getText()); // For creating time // record += "::" + status.getCreatedAt().toString(); Long seconds = // status.getCreatedAt(); (status.getCreatedAt().getTime() - start.getTime()) / 1000; record += "::" + seconds; recordInter += "::" + seconds; // For publishing source record += "::" + getSource(status.getSource()); //System.out.println(record); outWhole.println(record); if (inter) { outInter.println(recordInter); countInter++; } } count += statuses.size(); outWhole.flush(); outInter.flush(); } totalCount += count; totalCountInter += countInter; outWhole.println("%" + usr + "," + count + "," + countInter + "," + overflow); outInter.println("%" + usr + "," + count + "," + countInter + "," + overflow); System.out.println("%" + usr + "," + count + "," + countInter + "," + overflow); outWhole.println("------------------------------------------"); outInter.println("------------------------------------------"); } System.out.println("Total status count is " + totalCount + "," + totalCountInter); outWhole.println("#" + totalCount + "," + totalCountInter); outInter.println("#" + totalCount + "," + totalCountInter); outWhole.close(); outInter.close(); date = new Date(); System.out.println(); System.out.println("----------------------------------------------"); System.out.println("End at: " + dateFormat.format(date)); }
From source file:crawling.GetUserTimelineMulti.java
License:Apache License
public void doCrawl() { List<Status> statuses = null; int count = 0; int userIndex = 0; int userTotal = users.size(); boolean overflow = false; for (Long usr : users) { //System.out.println("%" + usr); out.println("%" + usr); Paging paging = null;//from w ww.ja va 2 s .c o m count = 0; //for (int i = 1; i < 21; i++) { for (int i = 1; i < 4; i++) { paging = new Paging(i, 200); //paging = new Paging(i, 200, sinceId, maxId); overflow = false; try { // statuses = twitter.getUserTimeline(user, paging); statuses = twitters.get(currentCrawl).getUserTimeline(usr, paging); currentCrawl++; if (currentCrawl == this.numCrawl) currentCrawl = 0; /*Thread.currentThread(); try { Thread.sleep(updateFreq); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ } catch (TwitterException te) { te.printStackTrace(); System.out.println("Failed to get timeline: " + te.getMessage()); //System.exit(-1); } if (statuses == null) { break; } if (statuses.isEmpty()) { if (i > 16) overflow = true; break; } for (Status status : statuses) { int len = status.getUserMentionEntities().length; /* * We only need the interactions */ if (len <= 0) continue; String record = ""; record += status.getId(); record += "::" + status.getInReplyToStatusId(); record += "::" + status.getInReplyToUserId(); record += "::" + status.getRetweetCount(); if (status.getRetweetedStatus() != null) record += "::" + status.getRetweetedStatus().getId(); else record += "::" + "-1"; //record += "::" + status.isRetweet(); //int len = status.getUserMentionEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { UserMentionEntity ent = status.getUserMentionEntities()[l]; record += "," + ent.getId(); } } else { record += "::" + "-1"; } len = status.getURLEntities().length; if (len > 0) { record += "::"; for (int l = 0; l < len; l++) { URLEntity ent = status.getURLEntities()[l]; record += "," + ent.getURL() + "|" //+ ent.getDisplayURL() + "|" + ent.getExpandedURL(); } } else record += "::" + "-1"; //record += "::" + cleanText(status.getText()); // We just ignore the text content in this crawling record += "::-1"; record += "::" + // status.getCreatedAt(); (status.getCreatedAt().getTime() - start.getTime()) / 1000; record += "::" + getSource(status.getSource()); // Geo Location if (status.getGeoLocation() != null) record += "::" + status.getGeoLocation(); else record += "::" + "-1"; //System.out.println(record); out.println(record); count++; } //count += statuses.size(); } out.flush(); totalCount += count; out.println("%" + usr + ", " + count + ", " + overflow); outUserId.println(usr + "," + count); //System.out.println("%" + usr + ", " + count + ", " + overflow); System.out.println(userIndex + "/" + userTotal + ", " + count); //+ ", " + (overflow ? "overflow" : "not overflow")); userIndex++; out.println("------------------------------------------"); } System.out.println("Total status count is " + totalCount); outUserId.println("#" + totalCount); this.closeFile(); }
From source file:crawling.SearchTweetsHashtag.java
License:Apache License
public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { /* my shutdown code here */ // Record the user status out.println("Final status -------------------:"); for (Long id : discoveredTweets.keySet()) { out.println(id + "," + discoveredTweets.get(id)); }/*from w w w. j a v a 2 s . c o m*/ out.close(); DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); date = new Date(); System.out.println("End at: " + dateFormat.format(date)); } }); if (args.length < 1) { System.out.println("Usage: java twitter4j.examples.PrintFilterStreamHashtag hashtag"); System.exit(-1); } if (args.length == 2) { // Preload the collected user IDs //preloadID(args[1]); } buildStartTime(); File file = new File(fileName); InputStream is = null; try { if (file.exists()) { is = new FileInputStream(file); prop.load(is); } else { System.out.println(fileName + " doesn't exist!"); System.exit(-1); } } catch (IOException ioe) { ioe.printStackTrace(); System.exit(-1); } try { FileWriter outFile = new FileWriter(args[0] + ".txt", true); out = new PrintWriter(outFile); hashtag = args[0]; //out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } avgUsers = new int[histCount]; Query query = new Query(); query.setQuery(hashtag); //query.setCount(100); query.since("2015-03-15"); //query.setPage(20); //Twitter twitter = new TwitterFactory().getInstance(); Twitter twitter = getOAuthTwitter(); DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); //System.out.println(); System.out.println("----------------------------------------------"); System.out.println("Start at: " + dateFormat.format(date)); while (true) { //for (int i = 1; i <= 15; i ++){ // query.setPage(i); try { doASearch(twitter, query); } catch (TwitterException te) { // TODO Auto-generated catch block te.printStackTrace(); System.out.println("Failed to search tweets: " + te.getMessage()); // back-off Thread.currentThread(); try { Thread.sleep(60 * 1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } Thread.currentThread(); try { Thread.sleep(5 * 1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
From source file:d3V.GetFriendsIDs.java
License:Apache License
/** * Usage: java twitter4j.examples.friendsandfollowers.GetFollowersIDs [screen name] * * @param args message/*from ww w .j a va2 s. c om*/ */ public static void main(String[] args) { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true).setOAuthConsumerKey("Em3WTI7jc90HcvKzPkTLQ") .setOAuthConsumerSecret("vg4p6rOF32bmffqRR8m0jAUClrxvtGiMB5PrSr3Zsw") .setOAuthAccessToken("1681973072-1q0zI0VPjHD3ttNuaBOL94frzCI9sXInxAcDK0w") .setOAuthAccessTokenSecret("ZRLkOyjmhHBkU1iNyEVNyIgIBsKrl0DUDKOcOMneYFYEM"); cb.setJSONStoreEnabled(true); TwitterFactory tf = new TwitterFactory(cb.build()); try { String core_user = "nytimes"; FileWriter writer = new FileWriter(core_user + "_friends.txt", true); Twitter twitter = tf.getInstance(); long cursor = -1; ArrayList<String> directFriends = new ArrayList<String>(); PagableResponseList<User> tempFriends = null; System.out.println("Listing " + core_user + " friends's ScreenNames."); int count = 0; //boolean first = true; //getFriends(writer, twitter, cursor, count, core_user); do { tempFriends = twitter.getFriendsList(core_user, cursor); for (User user : tempFriends) { directFriends.add(user.getScreenName()); writer.write(core_user + "\t" + user.getScreenName() + "\n"); } count += tempFriends.size(); System.out.println(core_user + ": " + count); if (count >= 100) break; Thread.sleep(300 * MILLISECOND); } while ((cursor = tempFriends.getNextCursor()) != 0); System.out.println("Size of DFs: " + directFriends.size()); // for (String user : directFriends){ for (int i = 0; i < directFriends.size(); i++) { // PagableResponseList<User> idrfriends = null; long _cursor = -1; int _count = 0; String _username = directFriends.get(i); System.out.println("\nFriends of Direct friend: " + _username + "(" + (i + 1) + ")"); try { getFriends(writer, twitter, _cursor, _count, _username); } catch (TwitterException e) { e.printStackTrace(); System.out.println("Failed to get friends' ids: " + e.getMessage()); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } writer.close(); System.out.println(count); System.exit(0); } catch (TwitterException e) { e.printStackTrace(); System.out.println("Failed to get friends' ids: " + e.getMessage()); System.exit(-1); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } }
From source file:de.binfalse.jatter.processors.JabberMessageProcessor.java
License:Open Source License
@Override public void process(Exchange exchange) throws Exception { Message message = getSmackMessage(exchange); String[] msg = message.getBody().substring(1).split("\\s+"); boolean help = false; if (msg.length < 1 || msg[0].length() < 1) { exchange.getOut().setBody("there was no command... try !help"); help = true;//from ww w. j a v a2s . co m } String result = ""; try { switch (msg[0]) { case "retweet": case "rt": result += retweet(msg); break; case "favorite": case "favourite": case "fav": result += favorite(msg); break; case "delete": case "del": result += delete(msg); break; /* TODO: find an option to set the geolocation through camel * case "location": result += setLocation (msg); break;*/ case "follow": result += follow(msg); break; case "unfollow": result += unfollow(msg); break; case "profile": result += getProfile(msg); break; default: help = true; } } catch (TwitterException e) { result += "received an *error from twitter*: " + e.getMessage(); } if (help) result += usage(); exchange.getOut().setBody(result); }
From source file:de.fhb.twitalyse.spout.TwitterStreamSpout.java
License:Open Source License
@Override public void onException(Exception ex) { LOGGER.log(Level.SEVERE, null, ex); TwitterException tex = (TwitterException) ex; if (400 == tex.getStatusCode()) { close();/*from w w w . j a v a 2 s.com*/ LOGGER.log(Level.SEVERE, "Rate limit texceeded. Clients may not make more than {0} requests per hour. \nThe ntext reset is {1}", new Object[] { tex.getRateLimitStatus().getHourlyLimit(), tex.getRateLimitStatus().getResetTime() }); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (401 == tex.getStatusCode()) { close(); LOGGER.log(Level.SEVERE, "Authentication credentials were missing or incorrect."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (403 == tex.getStatusCode()) { LOGGER.log(Level.SEVERE, "Duplicated status."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (404 == tex.getStatusCode()) { LOGGER.log(Level.SEVERE, "The URI requested is invalid or the resource requested, such as a user, does not exists."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (406 == tex.getStatusCode()) { LOGGER.log(Level.SEVERE, "Request returned - invalid format is specified in the request."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (420 == tex.getStatusCode()) { close(); LOGGER.log(Level.SEVERE, "Too many logins with your account in a short time."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (500 == tex.getStatusCode()) { LOGGER.log(Level.SEVERE, "Something is broken. Please post to the group so the Twitter team can investigate."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (502 == tex.getStatusCode()) { close(); LOGGER.log(Level.SEVERE, "Twitter is down or being upgraded."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (503 == tex.getStatusCode()) { close(); LOGGER.log(Level.SEVERE, "The Twitter servers are up, but overloaded with requests. Try again later."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else if (-1 == tex.getStatusCode()) { close(); LOGGER.log(Level.SEVERE, "Can not connect to the internet or the host is down."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } else { close(); LOGGER.log(Level.SEVERE, "Unknown twitter-error occured."); LOGGER.log(Level.SEVERE, "Exception: {0},\nMessage: {1},\nCause: {2}", new Object[] { tex, tex.getMessage(), tex.getCause() }); } }
From source file:de.hikinggrass.eiwomisarc.UpdateStatus.java
License:Apache License
/** * Usage: java twitter4j.examples.tweets.UpdateStatus [text] * /* ww w . j av a2 s . com*/ * @param args * message */ public UpdateStatus() { try { ConfigurationBuilder confBuilder = new ConfigurationBuilder(); //use https for oauth confBuilder.setUseSSL(true); Configuration conf = confBuilder.build(); Twitter twitter = new TwitterFactory(conf).getInstance(); twitter.setOAuthConsumer("HaBxuZMHygmtcuPeCbOLg", "zg6bV26ksBrgKHdhmiLlubTtV9MaDhoIRZC1ODUKw"); try { // get request token. // this will throw IllegalStateException if access token is already available RequestToken requestToken = twitter.getOAuthRequestToken(); System.out.println("Got request token."); System.out.println("Request token: " + requestToken.getToken()); System.out.println("Request token secret: " + requestToken.getTokenSecret()); AccessToken accessToken = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (null == accessToken) { System.out.println("Open the following URL and grant access to your account:"); System.out.println(requestToken.getAuthorizationURL()); System.out.print("Enter the PIN(if available) and hit enter after you granted access.[PIN]:"); String pin = br.readLine(); try { if (pin.length() > 0) { accessToken = twitter.getOAuthAccessToken(requestToken, pin); } else { accessToken = twitter.getOAuthAccessToken(requestToken); } } catch (TwitterException te) { if (401 == te.getStatusCode()) { System.out.println("Unable to get the access token."); } else { te.printStackTrace(); } } } System.out.println("Got access token."); System.out.println("Access token: " + accessToken.getToken()); System.out.println("Access token secret: " + accessToken.getTokenSecret()); } catch (IllegalStateException ie) { // access token is already available, or consumer key/secret is not set. if (!twitter.getAuthorization().isEnabled()) { System.out.println("OAuth consumer key/secret is not set."); System.exit(-1); } } Status status = twitter.updateStatus("test from eiwomisarc"); System.out.println("Successfully updated the status to [" + status.getText() + "]."); System.exit(0); } catch (TwitterException te) { te.printStackTrace(); System.out.println("Failed to get timeline: " + te.getMessage()); System.exit(-1); } catch (IOException ioe) { ioe.printStackTrace(); System.out.println("Failed to read the system input."); System.exit(-1); } }
From source file:de.jetsli.twitter.TwitterSearch.java
License:Apache License
public int getSecondsUntilReset() { try {/*w ww .j a v a 2 s . c o m*/ RateLimitStatus rls = getRLS(); rateLimit = rls.getRemaining(); return rls.getSecondsUntilReset(); } catch (TwitterException ex) { logger.error("Cannot determine rate limit:" + ex.getMessage()); return -1; } }
From source file:de.jetsli.twitter.TwitterSearch.java
License:Apache License
public void getFriendsOrFollowers(String userName, AnyExecutor<User> executor, boolean friends, boolean waitIfNoApiPoints) { long cursor = -1; resetRateLimitCache();//from w ww.j a v a 2 s . c o m MAIN: while (true) { if (waitIfNoApiPoints) { checkAndWaitIfRateLimited("getFriendsOrFollowers 1"); } ResponseList<User> res = null; IDs ids = null; try { if (friends) ids = twitter.getFriendsIDs(userName, cursor); else ids = twitter.getFollowersIDs(userName, cursor); rateLimit--; } catch (TwitterException ex) { if (waitIfNoApiPoints && checkAndWaitIfRateLimited("getFriendsOrFollowers 2", ex)) { // nothing to do } else logger.warn(ex.getMessage()); break; } if (ids.getIDs().length == 0) break; long[] intids = ids.getIDs(); // split into max 100 batch for (int offset = 0; offset < intids.length; offset += 100) { long[] limitedIds = new long[100]; for (int ii = 0; ii + offset < intids.length && ii < limitedIds.length; ii++) { limitedIds[ii] = intids[ii + offset]; } // retry at max N times for every id bunch for (int trial = 0; trial < 5; trial++) { try { res = twitter.lookupUsers(limitedIds); } catch (TwitterException ex) { if (waitIfNoApiPoints && checkAndWaitIfRateLimited("getFriendsOrFollowers 3 (trial " + trial + ")", ex)) { // nothing to do } else { // now hoping that twitter recovers some seconds later logger.error("(trial " + trial + ") error while lookupUsers: " + getMessage(ex)); myWait(10); } continue; } catch (Exception ex) { logger.error("(trial " + trial + ") error while lookupUsers: " + getMessage(ex)); myWait(5); continue; } rateLimit--; for (User user : res) { // strange that this was necessary for ibood if (user.getScreenName().trim().isEmpty()) continue; if (executor.execute(user) == null) break MAIN; } break; } if (res == null) { logger.error("giving up"); break; } } if (!ids.hasNext()) break; cursor = ids.getNextCursor(); } }