Twitter API没有显示旧推文?

问题描述 投票:11回答:5

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

twitter
5个回答
10
投票

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

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


9
投票

我和你有同样的问题,所以在看到Twitter网页搜索工作后我开始实现自己的解决方案,你可以在我的GitHub上看到。它是用Java实现的,但它会在我的博客上发布一篇文章来解释如何用其他语言做。我已经下载了没有任何问题的推文,我的上一次测试在2014年从一些特定用户解析了超过600k。


6
投票

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


2
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.