获取公共推特个人资料的推文
我在Twitter上有一个用户名列表,其个人资料是公开的。 我希望从他们形成个人资料的那天起收到他们发布的“所有推文”。 我检查了GitHub上的 Twitter4J示例。
根据Twitter API文档,仅返回20条最新推文。 无论如何我可以完成我的任务吗?
要使用Twitter4J获取用户的所有post,您必须在多个页面上发出请求。
下面的代码基于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 statuses = unauthenticatedTwitter.getUserTimeline("google",paging);
只需循环并继续抓取新页面,直到没有新post应该工作。
以下是如何为用户获取所有推文(或至少高达~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
…等
请记住,这些请求是速率限制的,因此您需要注意不要超过限制。
- 沉浸式模式Android Studio
- Youtube API v3搜索video,检索标题和url
- Java | 如何使用API在Google电子表格范围内查找值(行号和列号)?
- 在org.apache.catalina.core.JreMemoryLeakPreventionListener中急切调用URLConnection的setDefaultUseCaches(false)的原因是什么
- 使用级联函数调用设计API(Class.doThis(“…”)。doThat(“…”)…)
- 如何防止出现在Javadoc中的包私有接口?
- 使用Telegram API for Java Desktop App?
- 通过公共API导出非公共类型
- 如何在Java中将DOM节点从一个文档复制到另一个文档?