【问题标题】:Get notification when someone posts a tweet当有人发布推文时收到通知
【发布时间】:2013-07-12 09:51:46
【问题描述】:

正如我在 v1.1 文档中看到的,没有用于此的 api。当有人发布推文时,向我的网络服务器发布或获取 http 请求的轻松方式是什么?在我旁边创建 5 分钟 cron 检查新推文的用户时间线。我正在使用 php。

【问题讨论】:

  • @S S,你看过我的回答了吗?
  • 是的。如果我有 15 个代表,我会投票赞成你的答案。
  • @S S,- 如果我的回答有帮助,你能“打勾”它是正确的吗?否则我会删除...谢谢。

标签: php cron twitter


【解决方案1】:

我通过使用 RSS 提要类 (SimplePie) 从 Twitter 获取推文来处理这个问题(Twitter 为每个成员提供 RSS URL)。

我的脚本将推文加载到数据库中。如果最新的数据库条目早于某个限制,则发出新的提要请求。我这样做是为了不发出太多的提要请求。例如,如果您有 10 个人同时访问该页面,那么同时使用 10 个 RSS 提要请求使 Twitter 过载是没有意义的。

在显示推文的页面上,我创建了一个 AJAX 函数,它定期向服务器发送请求(使用setInterval())以查看是否有任何新内容。

结果证明这是一个相当复杂的项目,因此使用 Twitter 提供的小部件要容易得多。

更新:

我刚刚发现,由于上个月关闭,我相信是 2013 年 6 月 12 日,Twitter 关闭了 RSS 提要 API,因此该选项不再可用。似乎有一些解决方法,但最可靠的解决方案是只使用 Twitter 提供的小部件。

【讨论】:

  • 感谢您的回复。我需要这一切都由服务器端完成,你在浏览器中运行这个 ajax。
  • @SS - 我刚刚发现 RSS 提要不再可用于 Twitter,所以我更新了我的答案。
  • 那是 6 月 11 日,虽然关门了 :)
【解决方案2】:

不,每 x 分钟循环检查一次新推文似乎是最好的解决方案 - 为这类事情制作了 crons。

因为 RSS 已删除,并且通过 twitter API 返回的only响应格式现在是 json,所以您将看到仅利用服务器端经过身份验证的 json 请求。

如果我处于你的位置,我会做以下事情:

  • 编写一个脚本以返回少量,但尽可能集中数据。

因此,您将在请求中使用from: 字段来指定要检查的用户,并将count 变量指定为1。这意味着您要求尽可能少的数据,并且在 json 响应中只有一条推文需要处理。使用search/tweets 端点。示例:?q=from:username&count=1

  • 存储要比较的最后一条推文,如果您刚刚检索到的推文不同,则显示它/用它做任何您想做的事情。

现在您可以将推文存储在数据库中(额外开销)或纯文本文件(应该没问题,推文无论如何都在公共领域)。或者,返回最后的两条条推文,如果它们不同,则显示最新的 - 仅在它们没有发两次推文时才有效,非常快。

您将需要一个简单的库来发出经过身份验证的请求。我建议查看this post 以使用 PHP 进行操作,它解释了所有内容,并且代码尽可能少。这是library

最后,我不知道这是否会有所帮助,但我偶然发现了twoti,它声称在找到推文时会向您发送电子邮件。我猜,真的,这将具有与我刚刚描述的架构相似的架构,但是该服务将您的数据检索卸载到他们的服务器上,因此您可以通过检查电子邮件地址来做一些不同的事情(可能有您需要的“推送”通知)用于新推文。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2016-06-06
    相关资源
    最近更新 更多