Twitter API没有显示旧推文?

12

我在使用 Twitter API 时遇到了问题。我曾经发布过大约400条推文,但最近已经没有发布任何内容了。当我尝试使用 Twitter API 获取我的推文时,没有结果返回。我该如何检索以前的推文?

5个回答

10

1
没有免费的解决方案,但是您可以使用 Twitter 合作伙伴(如 data-sift)检索长达 2 年的推文。您可以查看他们的网站。http://datasift.com/ - cubbuk
2
-1 这个限制适用于 Twitter 搜索 API,而不是 Twitter API。 - Bennett McElwee
但是要检索旧推文,您必须使用搜索API,或者还有其他我不知道的检索旧推文的方法吗? - cubbuk
有没有一种方法可以通过特定的标签搜索超过7天的推文? - Metin Dagcilar

9

我和你有相同的问题,所以在看到Twitter Web搜索可行后,我开始实现自己的解决方案,你可以在我的GitHub上看到。它是用Java实现的,但我将在我的博客上发表文章,讲解如何使用其他语言实现。我已经成功地下载了推文,我的最后一个测试中,我解析了大约2014年某些特定用户发布的超过600k条推文,没有任何问题。


请问您能分享一下您的博客链接吗?我想用Python来实现这个。 - Simplex
你好,我用Python完成了它,请看这里:https://github.com/Jefferson-Henrique/GetOldTweets-python - Jefferson Henrique C. Soares
有没有R语言的实现版本?它还能正常工作吗? - Jibril
我问这个问题是因为我尝试了你在自述文件中提供的命令行实现,粘贴了完全相同的代码,但它只是提示我提供参数。 - Jibril
实际上,我已经让你的Java实现工作了。但是Python的实现出了一些问题,不知道为什么就是不喜欢我。有没有办法修改这个,使其不仅包含月/日/年,还能获取时:分:秒的时间戳呢? - Jibril
嗨@Jibril,这是可能的,你可以更改exporter.java并修改日期格式化程序。 - Jefferson Henrique C. Soares

6

这是一个好的了解,但如果你正在寻找带有特定标签的所有推文,这并不是一个解决方案。 - Flion
1
@Flion 是的,但那是另一个问题! - Bennett McElwee
有没有一种方法可以获取特定搜索条件下的旧推文?例如,提到某个@用户的任何推文? - Jibril
使用 GET statuses/user_timeline,您只能获取用户发布的推文。 - bittu
@BennettMcElwee 有没有办法在 Twitter API 中搜索超过过去7天的特定标签? - Metin Dagcilar
显示剩余2条评论

2

1
这是对@bennett-mcelwee的回答进行详细说明,其中获取最多3200条最新用户推文可以通过一系列API调用完成。目前,在1个请求中可以使用GET statuses/user_timeline API调用获取用户发布的推文的最大数量为200。要获取用户在时间轴上发布的所有推文,请执行以下操作:
步骤1
向此端点发出GET调用,传递参数count=200
步骤2
从步骤1返回的数据中获取最后一个推文的ID。
再次进行相同的GET调用,但这次传递参数max_id=,后跟第一次调用返回的最后一个推文的ID或-1,例如max_id=9987999
步骤3
重复步骤2,直到您不再获得任何新的(较旧的)数据。
对于我的目的,我能够使用Ruby完成此操作https://github.com/sferik/twitter 一旦实例化客户端对象,就像这样简单:
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中获取所有可抓取的推文,这相当简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接