import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /* * Sample code to demonstrate the use of the Recent search endpoint * */ public class RecentSearchDemo { // To set your enviornment variables in your terminal run the following line: // export 'BEARER_TOKEN'='' public static void main(String args[]) throws IOException, URISyntaxException { String bearerToken = System.getenv("BEARER_TOKEN"); if (null != bearerToken) { //Replace the search term with a term of your choice String response = search("from:TwitterDev OR from:SnowBotDev OR from:DailyNASA", bearerToken); System.out.println(response); } else { System.out.println("There was a problem getting you bearer token. Please make sure you set the BEARER_TOKEN environment variable"); } } /* * This method calls the recent search endpoint with a the search term passed to it as a query parameter * */ private static String search(String searchString, String bearerToken) throws IOException, URISyntaxException { String searchResponse = null; HttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(RequestConfig.custom() .setCookieSpec(CookieSpecs.STANDARD).build()) .build(); URIBuilder uriBuilder = new URIBuilder("https://api.x.com/2/tweets/search/recent"); ArrayList queryParameters; queryParameters = new ArrayList<>(); queryParameters.add(new BasicNameValuePair("query", searchString)); uriBuilder.addParameters(queryParameters); HttpGet httpGet = new HttpGet(uriBuilder.build()); httpGet.setHeader("Authorization", String.format("Bearer %s", bearerToken)); httpGet.setHeader("Content-Type", "application/json"); HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); if (null != entity) { searchResponse = EntityUtils.toString(entity, "UTF-8"); } return searchResponse; } }