, , since_id . . , Timeline. , . , since_id ( , GET search / tweets ). max_id , . , , , since_id / ( ). API docs , since_id , max_id, . since_id, , , since_id . - , . , since_id , . since_id, / , , , , , since_id. , . , , :

since_id , . , Tweet 10 ( - ). , since_id .
, , , . , max_id .
max_id . , , max_id ( max_id, max_id , ). max_id , / . , .
since_id , . , - t0 . , - id0. , . , . , t1, , . t0 t1 . , t1, id0 ( t0). id0 since_id .. , since_id , , , , , id0 ( , ), since_id . , since_id , max_id .
. Timeline. , " max_id" , " from_id " - . , since_id .
Twitter4J Java, , , :
Twitter twitter;
private void searchAndPrintTweets(String q) throws TwitterException {
long maxId = 0;
while (true) {
Query query = new Query();
query.setCount(100);
query.setLang("en");
if (maxId != 0)
query.setMaxId(maxId);
QueryResult qr = twitter.search(query);
printTweets(qr.getTweets());
maxId = calculateSmallestId(qr.getTweets()) - 1;
}
}
private long calculateSmallestId(List<Status> tweets) {
long smallestId = Long.MAX_VALUE;
for (Status tweet : tweets) {
if (tweet.getId() < smallestId)
smallestId = tweet.getId();
}
return smallestId;
}
private void printTweets(List<Status> tweets) {
for (Status tweet : tweets) {
System.out.println(tweet.getText());
}
}
, (, ), since_id, .