Over a million developers have joined DZone.
Platinum Partner

Simple Camel Configuration of a Twitter Endpoint

· Integration Zone

The Integration Zone is brought to you in partnership with 3scale. Take control of your APIs and get a free t-shirt when you complete the 3step Challenge

I was asked just how my got the Twitter Stream working in my new Camel based project and how I managed the credentials.

The Twitter endpoint works like a dream and this is essentially what my code looks like. All you need is a secrets.properties file in alongside your java file.
/**
 * A Camel Java DSL Router
 */
public class MyRouteBuilder extends RouteBuilder {

	private static final ResourceBundle SECRETS = ResourceBundle
			.getBundle("myproject.secrets");

	/**
	 * Let's configure the Camel routing rules using Java code...
	 * 
	 * @throws UnsupportedEncodingException
	 */
	public void configure() throws UnsupportedEncodingException {

		configureAccess();

		String twitter = "twitter://streaming/filter?type=event&keywords="
				+ URLEncoder.encode("london", "utf8");

		from(twitter).filter(body().isInstanceOf(Status.class)).addAllSortsOfStuffHere().

	}

	private void configureAccess() {
		// setup Twitter component
		TwitterComponent tc = getContext().getComponent("twitter",
				TwitterComponent.class);
		tc.setAccessToken(SECRETS.getString("ACCESS_TOKEN"));
		tc.setAccessTokenSecret(SECRETS.getString("ACCESS_TOKEN_SECRET"));
		tc.setConsumerKey(SECRETS.getString("CONSUMER_KEY"));
		tc.setConsumerSecret(SECRETS.getString("CONSUMER_SECRET"));
	}
}



The Integration Zone is brought to you in partnership with 3scale. Learn how API providers have changed the way we think about integration in The Platform Vision of API Giants.

Topics:

Published at DZone with permission of Col Wilson , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}