for (long userId : userIds) { // presumably you have a list of users try { // call twitter4j here and process results } catch (TwitterException e) { // do not throw if user has protected tweets, or if they deleted their account if (e.getStatusCode() == HttpResponseCode.UNAUTHORIZED || e.getStatusCode() == HttpResponseCode.NOT_FOUND) { // log something here } else { throw e; } } }
@Override public ResponseList<Place> createPlaceList(HttpResponse res) throws TwitterException { try { return PlaceJSONImpl.createPlaceList(res, conf); } catch (TwitterException te) { if (te.getStatusCode() == 404) { return new ResponseListImpl<Place>(0, null); } else { throw te; } } }
@Override public QueryResult createQueryResult(HttpResponse res, Query query) throws TwitterException { try { return new QueryResultJSONImpl(res, conf); } catch (TwitterException te) { if (404 == te.getStatusCode()) { return new QueryResultJSONImpl(query); } else { throw te; } } }
// The factory instance is re-useable and thread safe. Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer("[consumer key]", "[consumer secret]"); RequestToken requestToken = twitter.getOAuthRequestToken(); 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 aviailable) or just hit enter.[PIN]:"); String pin = br.readLine(); try{ if(pin.length() > 0){ accessToken = twitter.getOAuthAccessToken(requestToken, pin); }else{ accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if(401 == te.getStatusCode()){ System.out.println("Unable to get the access token."); }else{ te.printStackTrace(); } } }
/** * Tests if a friendship exists between two users. * <br>This method calls http://twitter.com/blocks/exists/id.xml * * @param id The ID or screen_name of the potentially blocked user. * @return if the authenticating user is blocking a target user * @throws TwitterException when Twitter service or network is unavailable * @since Twitter4J 2.0.4 * @see <a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-blocks-exists">Twitter API Wiki / Twitter REST API Method: blocks exists</a> */ public boolean existsBlock(String id) throws TwitterException { try{ return -1 == get(getBaseURL() + "blocks/exists/" + id + ".xml", true). asString().indexOf("<error>You are not blocking this user.</error>"); }catch(TwitterException te){ if(te.getStatusCode() == 404){ return false; } throw te; } }
/** * * @param token request token * @return access token * @throws TwitterException * @since Twitter4J 2.0.0 */ public AccessToken getOAuthAccessToken(RequestToken token) throws TwitterException { try { this.oauthToken = token; this.oauthToken = new AccessToken(httpRequest(accessTokenURL, new PostParameter[0], true)); } catch (TwitterException te) { throw new TwitterException("The user has not given access to the account.", te, te.getStatusCode()); } return (AccessToken) this.oauthToken; }
Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer("[consumer key]", "[consumer secret]"); RequestToken requestToken = twitter.getOAuthRequestToken(); 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 aviailable) or just hit enter.[PIN]:"); String pin = br.readLine(); try{ if(pin.length() > 0){ accessToken = twitter.getOAuthAccessToken(requestToken, pin); }else{ accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if(401 == te.getStatusCode()){ System.out.println("Unable to get the access token."); }else{ te.printStackTrace(); } } } //persist to the accessToken for future reference. storeAccessToken(twitter.verifyCredentials().getId() , accessToken); Status status = twitter.updateStatus(args[0]); System.out.println("Successfully updated the status to [" + status.getText() + "]."); System.exit(0);
Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer("[consumer key]", "[consumer secret]"); RequestToken requestToken = twitter.getOAuthRequestToken(); 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 aviailable) or just hit enter.[PIN]:"); String pin = br.readLine(); try{ if(pin.length() > 0){ accessToken = twitter.getOAuthAccessToken(requestToken, pin); }else{ accessToken = twitter.getOAuthAccessToken(); } } catch (TwitterException te) { if(401 == te.getStatusCode()){ System.out.println("Unable to get the access token."); }else{ te.printStackTrace(); } } } //persist to the accessToken for future reference. storeAccessToken(twitter.verifyCredentials().getId() , accessToken); Status status = twitter.updateStatus(args[0]); System.out.println("Successfully updated the status to [" + status.getText() + "]."); System.exit(0);
/** * * @param token request token * @param tokenSecret request token secret * @return access token * @throws TwitterException * @since Twitter4J 2.0.1 */ public AccessToken getOAuthAccessToken(String token, String tokenSecret) throws TwitterException { try { this.oauthToken = new OAuthToken(token, tokenSecret) { }; this.oauthToken = new AccessToken(httpRequest(accessTokenURL, new PostParameter[0], true)); } catch (TwitterException te) { throw new TwitterException("The user has not given access to the account.", te, te.getStatusCode()); } return (AccessToken) this.oauthToken; }
accessToken = requestToken.getAccessToken(); } catch (TwitterException te) { if(401 == te.getStatusCode()){ System.out.println("Unable to get the access token."); }else{
@Override public ResponseList<Place> reverseGeoCode(GeoQuery query) throws TwitterException { try { return factory.createPlaceList(get(conf.getRestBaseURL() + "geo/reverse_geocode.json", query.asHttpParameterArray())); } catch (TwitterException te) { if (te.getStatusCode() == 404) { return factory.createEmptyResponseList(); } else { throw te; } } }
/** * Returns tweets that match a specified query. * <br>This method calls http://search.twitter.com/search * @param query - the search condition * @return the result * @throws TwitterException when Twitter service or network is unavailable * @since Twitter4J 1.1.7 * @see <a href="http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search">Twitter API Wiki / Twitter Search API Method: search</a> */ public QueryResult search(Query query) throws TwitterException { try{ return new QueryResult(get(searchBaseURL + "search.json", query.asPostParameters(), false), this); }catch(TwitterException te){ if(404 == te.getStatusCode()){ return new QueryResult(query); }else{ throw te; } } }
/** * * @param token request token * @return access token * @throws TwitterException * @since Twitter4J 2.0.8 */ public AccessToken getOAuthAccessToken(RequestToken token, String pin) throws TwitterException { try { this.oauthToken = token; this.oauthToken = new AccessToken(httpRequest(accessTokenURL , new PostParameter[]{new PostParameter("oauth_verifier", pin)}, true)); } catch (TwitterException te) { throw new TwitterException("The user has not given access to the account.", te, te.getStatusCode()); } return (AccessToken) this.oauthToken; }
/** * * @param token request token * @param tokenSecret request token secret * @param oauth_verifier oauth_verifier or pin * @return access token * @throws TwitterException * @since Twitter4J 2.0.8 */ public AccessToken getOAuthAccessToken(String token, String tokenSecret , String oauth_verifier) throws TwitterException { try { this.oauthToken = new OAuthToken(token, tokenSecret) { }; this.oauthToken = new AccessToken(httpRequest(accessTokenURL, new PostParameter[]{new PostParameter("oauth_verifier", oauth_verifier)}, true)); } catch (TwitterException te) { throw new TwitterException("The user has not given access to the account.", te, te.getStatusCode()); } return (AccessToken) this.oauthToken; }
@Override public AccessToken getOAuthAccessToken(String screenName, String password) throws TwitterException { try { String url = conf.getOAuthAccessTokenURL(); if (0 == url.indexOf("http://")) { // SSL is required // @see https://dev.twitter.com/docs/oauth/xauth url = "https://" + url.substring(7); } oauthToken = new AccessToken(http.post(url, new HttpParameter[]{ new HttpParameter("x_auth_username", screenName), new HttpParameter("x_auth_password", password), new HttpParameter("x_auth_mode", "client_auth") }, this, null)); return (AccessToken) oauthToken; } catch (TwitterException te) { throw new TwitterException("The screen name / password combination seems to be invalid.", te, te.getStatusCode()); } }
if (!closed) { if (NO_WAIT == timeToSleep) { if (te.getStatusCode() == FORBIDDEN) { logger.warn("This account is not in required role. ", te.getMessage()); closed = true; if (te.getStatusCode() == NOT_ACCEPTABLE) { logger.warn("Parameter not accepted with the role. ", te.getMessage()); closed = true; if (te.getStatusCode() > 200) { timeToSleep = HTTP_ERROR_INITIAL_WAIT; } else { if (te.getStatusCode() > 200 && timeToSleep < HTTP_ERROR_INITIAL_WAIT) { timeToSleep = HTTP_ERROR_INITIAL_WAIT; } catch (InterruptedException ignore) { timeToSleep = Math.min(timeToSleep * 2, (te.getStatusCode() > 200) ? HTTP_ERROR_WAIT_CAP : TCP_ERROR_WAIT_CAP);
if (te != null) { rateLimitStatus = te.getRateLimitStatus(); statusCode = te.getStatusCode(); } else { rateLimitStatus = JSONImplFactory.createRateLimitStatusFromResponseHeader(res);
private void verifyCredentials(ResultBuilder builder, Map<String, Object> parameters) throws Exception { try { TwitterConfiguration configuration = setProperties(new TwitterConfiguration(), parameters); Twitter twitter = configuration.getTwitter(); twitter.verifyCredentials(); } catch (TwitterException e) { // verifyCredentials throws TwitterException when Twitter service or // network is unavailable or if supplied credential is wrong ResultErrorBuilder errorBuilder = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getErrorMessage()) .detail("twitter_error_code", e.getErrorCode()) .detail("twitter_status_code", e.getStatusCode()) .detail("twitter_exception_code", e.getExceptionCode()) .detail("twitter_exception_message", e.getMessage()) .detail("twitter_exception_caused-by-network-issue", e.isCausedByNetworkIssue()) .detail(VerificationError.ExceptionAttribute.EXCEPTION_CLASS, e.getClass().getName()) .detail(VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE, e); // For a complete list of error codes see: // https://dev.twitter.com/overview/api/response-codes if (e.getErrorCode() == 89) { errorBuilder.parameterKey("accessToken"); } builder.error(errorBuilder.build()); } } }