你需要不斷重做查詢,每次重置maxId,直到你沒有得到任何回報。你也可以使用setSince和setUntil。
一個例子:
Query query = new Query();
query.setCount(DEFAULT_QUERY_COUNT);
query.setLang("en");
// set the bounding dates
query.setSince(sdf.format(startDate));
query.setUntil(sdf.format(endDate));
QueryResult result = searchWithRetry(twitter, query); // searchWithRetry is my function that deals with rate limits
while (result.getTweets().size() != 0) {
List<Status> tweets = result.getTweets();
System.out.print("# Tweets:\t" + tweets.size());
Long minId = Long.MAX_VALUE;
for (Status tweet : tweets) {
// do stuff here
if (tweet.getId() < minId)
minId = tweet.getId();
}
query.setMaxId(minId-1);
result = searchWithRetry(twitter, query);
}
你能分享代碼嗎? :)我有同樣的問題 –
@ThusithaThilinaDayaratne你在找什麼代碼? Twitter4j API有詳細記錄。 – betseyb