有什么办法可以使用twitter4j列出某个用户的所有推文?

Twitter.get****Timeline()从用户的主时间轴返回20条最新推文的列表,但是如果我要列出用户到目前为止的所有推文,该怎么办。

最佳答案

您可以使用Paging对象获取更多状态并浏览时间线,例如:

final Paging paging = new Paging();
paging.count(200); // max statuses you can request for this call

List<Status> statuses = twitter.getUserTimeline(userId, paging);


要获取接下来的200种状态,只需将paging.maxId设置为刚收到的最早状态的id并再次拨打电话:

paging.maxId(earliestStatusId - 1);
statuses = twitter.getUserTimeline(id, paging);


等等...

我们从maxId中减去一个,因为它包含在内,我们不想再次获取最早的Status

这种方法允许您以相反的时间顺序批量获取200个状态。这是Twitter建议处理时间轴的方法之一,有关更多信息,请参见Working with Timelines上的指南。

顺便说一句,通过此API调用,您只能检索到大约3k的用户最新状态,有关详细信息,请参见documentation

09-12 17:03