如何使用twitter4j获取更多推文并解析为json?

时间:2013-07-02 08:28:57

标签: java twitter twitter4j

我正在使用twitter4j从Twitter检索推文。据我们所知,我们只能在7天内检索推文。此外,我们只能获得100条实时推文。但我想要检索更多。搜索后,我发现我们可以使用setSincesetUntil来获取超过100条推文。但是当我使用setSincesetUntil时,我仍然只能获得实时推文。此外,我想知道如何解析我的推文 json格式
这是我的代码:

public static void main(String[] args) throws TwitterException, IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException 
    {

        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
                .setOAuthConsumerKey("XXX")
                .setOAuthConsumerSecret("XXX")
                .setOAuthAccessToken("XXX")
                .setOAuthAccessTokenSecret("XX");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        Query query = new Query("KEYWORD");
        query.setCount(100);
        query.setSince("2013-06-27");
        query.setUntil("2013-07-02");
        query.geoCode(new GeoLocation(XXX, XXX), 200, Query.KILOMETERS);
        QueryResult result = twitter.search(query);
        System.out.println(result);
}

2 个答案:

答案 0 :(得分:0)

例如,如果您尝试在搜索中获取1000条最新推文,则应将query.setMaxId()用于上一批中最低的# - 1。如果您在上次查询后尝试获取新的(呃)推文,则应使用query.setSinceId()从上一批result.getMaxId()中返回的值开始。

请参阅here

答案 1 :(得分:0)

您可以使用getUserTimeline(userid, page)

代替查询
int tweetCount = 250;
long userId = 12312323;  
twitter.getUserTimeline(userId, new Paging(1, tweetCount));

文档:http://twitter4j.org/oldjavadocs/3.0.0/twitter4j/api/TimelinesResources.html#getUserTimeline%28long,%20twitter4j.Paging%29