我对推特 API 有疑问。我过去发过推文(大约 400 条),但最近我没有发过任何推文。当我尝试使用 twitter api 获取推文时,没有结果。如何检索较旧的推文?
5 回答
Twitter 不会通过搜索 API 返回超过一周的推文。从以下链接查看限制部分:
我和你有同样的问题,所以在看到 Twitter Web Search 工作后,我开始实现自己的解决方案,你可以在我的GitHub 上看到。它是用 Java 实现的,但它会在我的博客上发表一篇文章来解释如何用其他语言来做。我已经毫无问题地下载了推文,我在上一次测试中解析了 2014 年某些特定用户的超过 60 万条推文。
您可以使用 REST API 资源GET statuses/user_timeline从任何公共时间线检索最新的 3200 条推文。
这在 Twitter 网络搜索门户中是可能的,但不能通过他们的 API。无赖 https://twitter.com/search-home
这详细说明了@bennett-mcelwee 的答案,其中可以在一系列 API 调用中完成最多 3200 条最新的用户推文。GET statuses/user_timeline
目前,使用API 调用,用户在 1 个请求中可以获得的最大推文数为 200 。要获取用户在其时间轴上发布的所有推文,请执行以下操作:
第1步
对此端点传递参数进行 GET 调用count=200
。
第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 中获取的推文。