【问题标题】:how can I retrieve tweets with URLs from a user's stream?如何从用户的流中检索带有 URL 的推文?
【发布时间】:2011-12-28 06:05:59
【问题描述】:

我使用 Jaisen Mathai Epi PHP 库设置了 oAuth。

如何从用户的信息流中检索带有 URL 的推文? (上限为 300 条推文)?

我对此很陌生,发现搜索 api 只产生最近 5 天的结果,所以我不能再使用搜索 api。

如何检索这些过滤后的数据?

【问题讨论】:

  • 我不相信您可以通过 twitter API 从用户那里检索经过过滤的推文列表。您最好的选择可能是检索所有推文,然后在 PHP 中进行过滤(您可以使用正则表达式检查帖子的消息中是否包含 URL)
  • @MrGlass 我正在研究检索这些推文(300)。我对 Streaming vs REST API(时间线调用)感到很困惑。你推荐哪一个?
  • 我已经有一段时间没有使用过他们的 api 了,但我之前都和他们互动过。如果您想监听某事的发生并触发响应,则流式传输非常有用。不过实现起来并不容易。听起来您需要历史数据(例如用户已经发布的推文),为此您需要使用 REST
  • @MrGlass 是正确的。请看这里:webapps.stackexchange.com/q/21869/15489
  • 也请看这个问题:stackoverflow.com/q/3584482/109941

标签: php twitter


【解决方案1】:

您不应使用 Regex,也不必使用流式 API。 Twitter 已在其REST api 中内置了处理该问题的方法。

在您的搜索中捕获推文 URL:

将参数 include_entities=1 添加到 API 调用的末尾。

Tweet entities

您将返回一个扩展的 JSON,其中包含扩展和短 URL 版本及其在推文中的位置。

"urls": [
        {
          "url": "http://t.co/0JG5Mcq",
          "display_url": "blog.twitter.com/2011/05/twitte…",
          "expanded_url": "http://blog.twitter.com/2011/05/twitter-for-mac-update.html",
          "indices": [
            84,
            103
          ]
        }
      ],

Twitter API 的上限是 100 条推文和 10 天。在某些电话中,它是 20 条推文。您要做的是使用绕过搜索限制的 API。 Snapbird 是最流行的解决方案。

Snapbird API

【讨论】:

  • 这会只返回包含 URL 的推文吗?
  • 不,如果您想捕获其中只有 URL 的推文,那么您将需要使用流 API,但如上所述。您将无法捕获历史数据,而且实施起来要困难得多。尽管如此,如果您从头开始工作,您可以查看140 dev server 以帮助使用 PHP 进行流式传输。您可以做的是自己过滤 REST 结果,取出没有 URL 实体的推文并保留有的推文。
  • -1:这不能回答 OP 的问题。 OP 想要来自用户流的only 推文。请看这里:webapps.stackexchange.com/q/21869/15489
  • @JimG,您否决了我将用户引导至您在 WebApps 上发布的不相关帖子的回答?你坦率地说什么?如果您想要一个用户自己的流,您需要做的就是在用户流 API 调用中包含实体参数。支持.. https://api.twitter.com/1/statuses/home_timeline.json?include_entities=true 为什么有人需要使用 Twitter 搜索?这被认为是完全不可靠的。只需使用 REST api,无需修改它。就此而言,使用 Fiddler 尝试查找和使用 Phoenix 搜索 URL,这将使您走上一条错误的道路。
猜你喜欢
  • 1970-01-01
  • 2015-01-16
  • 2016-09-19
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多