我的twitter API有问题。我过去发了推文(大约400),但最近我没有发推文。当我尝试使用twitter api来获取推文时,没有结果。如何检索较旧的推文?
Twitter不会通过搜索API返回超过一周的推文。请查看以下链接中的限制部分:
我和你有同样的问题,所以在看到Twitter网页搜索工作后我开始实现自己的解决方案,你可以在我的GitHub上看到。它是用Java实现的,但它会在我的博客上发布一篇文章来解释如何用其他语言做。我已经下载了没有任何问题的推文,我的上一次测试在2014年从一些特定用户解析了超过600k。
您可以使用REST API资源GET statuses/user_timeline从任何公共时间轴中检索最新的3200条推文。
这在Twitter网络搜索门户网站中是可能的,但不能通过他们的API。无赖https://twitter.com/search-home
这详细阐述了@ bennett-mcelwee的答案,其中最多可以在一系列API调用中完成3200个最新用户推文。目前,用户在1个请求中可以获得的最大推文数为200,使用GET statuses/user_timeline
API调用。要获取用户在其时间轴上发布的所有推文,请执行以下操作:
步骤1
通过参数count=200
对此端点进行GET调用。
第2步
从步骤1中返回的数据中,获取最后一条推文的ID
进行相同的GET调用,但这次传入参数max_id=
,然后是第一次调用返回的最后一条推文的ID,或-1
。所以例如max_id=9987999
第3步
重复步骤2,直到您没有获得任何新的(较旧的)数据。
为了我的目的,我可以使用https://github.com/sferik/twitter在Ruby中完成此操作
实例化客户端对象后,它就像:
tweets = client.user_timeline('foobar', count: 200)
max_id = tweets.last.id - 1
tweets << client.user_timeline('foobar', count: 200, max_id: max_id)
从这里你可以得到想法,写一个循环是相当简单的,直到你得到所有可以从API中获取的推文。