У меня есть список имен пользователей в Твиттере, профили которого общедоступны. Я хочу получить "все твиты", они отправили со дня, они сформировали свой профиль. Я проверил примеры Twitter4J на GitHub.
Согласно документации Программного интерфейса Твиттера, только возвращаются 20 новых твитов. Есть ли так или иначе, я мог выполнить свою задачу?
Чтобы использовать 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);
Просто зацикливайтесь и продолжайте захватывать новые страницы, пока не перестанут работать новые сообщения.
Если вы прочитаете Документацию Twitter, вы можете получить до 200 твитов за раз, если укажете "count=200" в запросе API.
Вы также можете использовать "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
... и т.д.
Имейте в виду, что скорость этих запросов ограничена, поэтому вам нужно быть осторожным, чтобы не превысить лимит.