我使用twitter4j+camel插件来读取推文
<route id="twitter-timeline-incoming">
<from
uri="twitter://timeline/user?type=polling&delay=180&consumerKey=xxxx&consumerSecret=xxxx&accessToken=xxxx8&accessTokenSecret=xxxxg&user=user_account" />
<process ref="setTwitterTimestampProcessor" />
<filter>
<method ref="twitterFeedFilter" />
<to uri="direct:twitterProcessFeed" />
</filter>
</route>
Twitter从今天起强制要求使用SSL,https://dev.twitter.com/discussions/24239
我想知道如何为这些请求启用SSL,这里没有给出http://camel.apache.org/twitter.html.
谢谢。
2014年1月14日,Twitter更新了其API,要求所有端点都是https。Twitter4J中默认的API端点是http,而不是https。你现在可以手动更改它们,直到它们更新Twitter4J:中的默认值
ConfigurationBuilder confBuilder=new ConfigurationBuilder();
confBuilder.setOAuthConsumerKey(consumerKey);
confBuilder.setOAuthConsumerSecret(consumerSecret);
confBuilder.setHttpRetryCount(3);
confBuilder.setHttpRetryIntervalSeconds(30);
confBuilder.setRestBaseURL("https://api.twitter.com/1.1/");
confBuilder.setStreamBaseURL("https://stream.twitter.com/1.1/");
confBuilder.setSiteStreamBaseURL("https://sitestream.twitter.com/1.1/");
confBuilder.setUserStreamBaseURL("https://userstream.twitter.com/1.1/");
confBuilder.setOAuthRequestTokenURL("https://api.twitter.com/oauth/request_token");
confBuilder.setOAuthAccessTokenURL("https://api.twitter.com/oauth/access_token");
confBuilder.setOAuthAuthorizationURL("https://api.twitter.com/oauth/authorize");
confBuilder.setOAuthAuthenticationURL("https://api.twitter.com/oauth/authenticate");
Configuration conf=confBuilder.build();
Twitter twitter=new TwitterFactory(conf).getInstance();
您可以将参数传递给JVM以打开SSL:-Dtwitter4j.http.useSSL=真正的
至少这解决了我的问题。
设置JVM对我来说不是一个选项,
门票已在骆驼+推特插件中筹集
https://issues.apache.org/jira/browse/CAMEL-7134并且似乎在修复版本2.11.4、2.12.3、2.13.0 中提供了补丁