Tyl*_*ler 27
要使用Twitter4J获取用户的所有帖子,您必须在多个页面上发出请求.
下面的代码基于GitHub上的一个例子
Twitter unauthenticatedTwitter = new TwitterFactory().getInstance();
//First param of Paging() is the page number, second is the number per page (this is capped around 200 I think.
Paging paging = new Paging(1, 100);
List<Status> statuses = unauthenticatedTwitter.getUserTimeline("google",paging);
只需循环并继续抓取新页面,直到没有新帖子应该工作.
red*_*oyz 15
以下是如何为用户获取所有推文(或至少高达~3200):
import java.util.*;
import twitter4j.*;
import twitter4j.conf.*;
public static void main(String[] a) {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setOAuthConsumerKey("YOUR KEYS HERE");
    cb.setOAuthConsumerSecret("YOUR KEYS HERE");
    cb.setOAuthAccessToken("YOUR KEYS HERE");
    cb.setOAuthAccessTokenSecret("YOUR KEYS HERE");
    Twitter twitter = new TwitterFactory(cb.build()).getInstance();
    int pageno = 1;
    String user = "cnn";
    List statuses = new ArrayList();
    while (true) {
      try {
        int size = statuses.size(); 
        Paging page = new Paging(pageno++, 100);
        statuses.addAll(twitter.getUserTimeline(user, page));
        if (statuses.size() == size)
          break;
      }
      catch(TwitterException e) {
        e.printStackTrace();
      }
    }
    System.out.println("Total: "+statuses.size());
}
如果您阅读Twitter的文档,如果您在API请求中指定"count = 200",则一次最多可以检索200条推文.
您还可以使用"page = x"来获得不同的分页结果; 你可以继续这样做,直到你检索到用户发布的每条推文为止.
我不确定您的Java应用程序将如何创建它,但您的请求可能如下所示:
http://api.twitter.com/1/statuses/user_timeline.xml?id=SomeUsername&count=200&page=1
http://api.twitter.com/1/statuses/user_timeline.xml?id=SomeUsername&count=200&page=2
http://api.twitter.com/1/statuses/user_timeline.xml?id=SomeUsername&count=200&page=3
...等
请记住,这些请求是速率限制的,因此您需要注意不要超过限制.