任何人都知道为什么 setCount() 在 twitter4j 中不起作用?

Anyone knows why setCount() is not working in twitter4j?

你好,我正在尝试使用 Twitter4j 检索 1 条推文,但 setCount() 方法正在做它想做的事(也许只是我做错了什么)我把我的代码留在下面。 我尝试了多个选项“1”、“2”、“0”,不管它检索的推文数量是多少,从 3 到 10 不等。

 ConfigurationBuilder cf = new ConfigurationBuilder();

    cf.setDebugEnabled(true)
            .setOAuthConsumerKey("xxx")
            .setOAuthConsumerSecret("xxxx")
            .setOAuthAccessToken("xxxx")
            .setOAuthAccessTokenSecret("xxxx");

    TwitterFactory tf = new TwitterFactory(cf.build());
    twitter4j.Twitter twitter = tf.getInstance();

    try {
        Query query = new Query("sverige");
        QueryResult result;
        do {

            query.setCount(2);
            result = twitter.search(query);
            List<Status> tweets = result.getTweets();
            for (Status tweet : tweets) {
                System.out.println("@" + tweet.getUser().getScreenName() + tweet.getFavoriteCount() + tweet.getUser().getName());
            }
        } while ((query = result.nextQuery()) != null);
        System.exit(0);
    } catch (TwitterException te) {
        te.printStackTrace();
        System.out.println("Failed to search tweets: " + te.getMessage());
        System.exit(-1);
    }

您正在获取该用户的所有推文,每页 2 个结果。因此,如果他们有 22 条推文,您将得到 11 页,每页 2 条推文。

query.setCount(2); // set the number of tweets per page

// get the next page until there are no more pages 
} while ((query = result.nextQuery()) != null); 

当有更多推文可用时,循环将继续查询推文。 这是因为 (query = result.nextQuery()) != null 在读取所有推文(匹配查询)之前为真。 setCount 仅限制每次搜索操作的推文数量 returns.

当调试这样的情况时(如果你不想查看源代码/文档)你可以测试外循环发生了多少次。