我使用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。
感谢。
答案 0 :(得分:0)
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();
答案 1 :(得分:0)
您可以将参数传递给JVM以打开SSL: -Dtwitter4j.http.useSSL =真
至少这解决了我的问题。
答案 2 :(得分:0)
设置JVM不是我的选择,
已经在camel + twitter插件中提出了票证
https://issues.apache.org/jira/browse/CAMEL-7134似乎补丁在修订版本2.11.4,2.12.3,2.13.0中可用