【问题标题】:Official way to fetch the number of tweets for a URL获取 URL 的推文数量的官方方法
【发布时间】:2015-11-03 17:14:14
【问题描述】:

Twitter 有类似这样的私有端点:

http://urls.api.twitter.com/1/urls/count.json

可以从此处获取推文计数,但 Twitter 不建议这样做。此外,他们一直说他们将在不久的将来关闭这些端点。

Site Streams API 现在处于封闭测试阶段,不接受申请。

https://dev.twitter.com/streaming/sitestreams

所以剩下的只有一个选项,即 REST API,但我没有看到任何可以返回给定 URL 的推文数量的端点。

获取这些数据的最佳方式是什么?是否有一个“官方”端点?

或者唯一的方法是使用公共流 API 或 REST API 搜索端点之类的东西并过滤结果?

【问题讨论】:

  • 如您所见 - 一旦 Twitter 关闭私有端点,就没有真正的方法可以做到这一点。

标签: api twitter


【解决方案1】:

专用端点将在 11 月 20 日之前关闭,并且没有任何东西可以替代它。 This blog post from Twitter 解释了背景:显然这与他们迁移到代号为曼哈顿的新“实时、多租户分布式数据库”系统有关。

REST API 将仅限于此用途。您必须搜索您的 URL,收集每页结果并自己添加推文总数。比如这个请求

https://api.twitter.com/1.1/search/tweets.json?q=metro.co.uk&count=100

将获得与http://metro.co.uk 关联的推文。 (如果您只是将其粘贴到浏览器中,它将不起作用 - 您必须先进行身份验证。您可以在 Twitter API console tool 上尝试此操作。)但是搜索 API 每页结果最多返回 100 条推文,而且它只返回过去 7 天的推文。

似乎唯一的解决方案(解释为here)是一个使用 Twitter 流 API 的复杂解决方案。基本上,您必须创建自己的应用程序来计算相关推文。它将打开到stream.twitter.com 的连接,将您的URL 作为track 参数传递。每当有人发布该地址时,Twitter 都会返回一条推文,而您的应用程序必须对它们进行计数。该帖子中给出的示例是:

curl -u user:password "https://stream.twitter.com/1/statuses/filter.json" -d "track=https%3A%2F%2Fdev.twitter.com%2Fdiscussions%2F5653"

我不确定在这种情况下您将如何处理缩短的 URL。

这一变化意味着报告 Twitter 分享计数的第三方服务(如 SharedCount)不得不停止提供该数据。很抱歉给你一个坏消息——我自己对这种情况感到非常失望。我们不能只获得给定 URL 的全部推文,这似乎很疯狂。

您可以在this thread 中找到更多相关信息。

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 2011-09-14
    • 2015-09-16
    • 2011-12-16
    • 2018-03-05
    • 2020-07-24
    • 2012-11-05
    • 2021-05-23
    相关资源
    最近更新 更多