【发布时间】:2012-12-20 22:59:58
【问题描述】:
我的 Twitter API 有问题。我过去发过推文(大约 400 条),但最近我没有发过任何推文。当我尝试使用 twitter api 获取推文时,没有结果。如何检索较旧的推文?
【问题讨论】:
标签: twitter
我的 Twitter API 有问题。我过去发过推文(大约 400 条),但最近我没有发过任何推文。当我尝试使用 twitter api 获取推文时,没有结果。如何检索较旧的推文?
【问题讨论】:
标签: twitter
Twitter 不会通过搜索 API 返回超过一周的推文。请查看以下链接中的限制部分:
【讨论】:
我和你有同样的问题,所以在看到 Twitter Web Search 工作后,我开始实施自己的解决方案,你可以在我的 GitHub 上看到。它是用 Java 实现的,但它会在我的博客上发表一篇文章来解释如何用其他语言来做。我已经毫无问题地下载了推文,我的最后一次测试是在 2014 年从一些特定用户那里解析超过 600k。
【讨论】:
您可以使用 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 中获取的推文。
【讨论】: