Twitter + Camel使用HTTPS / SSL

时间:2014-01-14 21:17:01

标签: ssl twitter

我使用twitter4j + camel插件阅读推文

<route id="twitter-timeline-incoming">
     <from
       uri="twitter://timeline/user?type=polling&amp;delay=180&amp;consumerKey=xxxx&amp;consumerSecret=xxxx&amp;accessToken=xxxx8&amp;accessTokenSecret=xxxxg&amp;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

感谢。

3 个答案:

答案 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中可用