Friday, 23 November 2012

Simple Camel Configuration of a Twitter Endpoint

I was asked just now 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"));
}
}
view raw routes.java hosted with ❤ by GitHub

No comments:

Post a Comment