您可以在本地過濾狀態,基於status.getCreatedAt()
。例如:
try {
int statusesPerPage = 200;
int page = 1;
String username = "username";
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
Twitter twitter = new TwitterFactory().getInstance();
Paging paging = new Paging(page, statusesPerPage);
List<Status> statuses = twitter.getUserTimeline(username, paging);
page_loop:
while (statuses.size() > 0) {
System.out.println("Showing @" + username + "'s home timeline, page " + page);
for (Status status : statuses) {
if (status.getCreatedAt().before(cal.getTime())) {
break page_loop;
}
System.out.println(status.getCreatedAt() + " - " + status.getText());
}
paging = new Paging(++page, statusesPerPage);
statuses = twitter.getUserTimeline(username, paging);
}
} catch (TwitterException te) {
te.printStackTrace();
}
我認爲serach/tweets端點不會在一年內返回tweets。您應該使用狀態/ user_timeline端點https://dev.twitter.com/rest/reference/get/statuses/user_timeline – itzmukeshy7
@ itzmukeshy7非常感謝!答案已更新。 – aalazz
@ aalazz,@ itzmukeshy謝謝大家,我會嘗試這些方法。我使用put狀態和創建時間在一起,然後通過時間標記過濾這些字符串,但我認爲這不是一個好的解決方案。謝謝你們。 – QYang