12

我对推特 API 有疑问。我过去发过推文(大约 400 条),但最近我没有发过任何推文。当我尝试使用 twitter api 获取推文时,没有结果。如何检索较旧的推文?

4

5 回答 5

10

Twitter 不会通过搜索 API 返回超过一周的推文。从以下链接查看限制部分:

https://dev.twitter.com/docs/using-search

于 2013-01-07T10:05:14.610 回答
9

我和你有同样的问题,所以在看到 Twitter Web Search 工作后,我开始实现自己的解决方案,你可以在我的GitHub 上看到。它是用 Java 实现的,但它会在我的博客上发表一篇文章来解释如何用其他语言来做。我已经毫无问题地下载了推文,我在上一次测试中解析了 2014 年某些特定用户的超过 60 万条推文。

于 2015-02-03T05:55:32.163 回答
6

您可以使用 REST API 资源GET statuses/user_timeline从任何公共时间线检索最新的 3200 条推文。

于 2013-07-01T01:43:43.370 回答
2

这在 Twitter 网络搜索门户中是可能的,但不能通过他们的 API。无赖 https://twitter.com/search-home

于 2014-04-23T16:20:00.790 回答
1

这详细说明了@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 中获取的推文。

于 2018-08-31T01:13:34.577 回答