Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Simple Camel Configuration of a Twitter Endpoint

DZone's Guide to

Simple Camel Configuration of a Twitter Endpoint

· Integration Zone ·
Free Resource

SnapLogic is the leading self-service enterprise-grade integration platform. Download the 2018 GartnerMagic Quadrant for Enterprise iPaaS or play around on the platform, risk free, for 30 days.

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"));
	}
}



With SnapLogic’s integration platform you can save millions of dollars, increase integrator productivity by 5X, and reduce integration time to value by 90%. Sign up for our risk-free 30-day trial!

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}