0

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

4

2 回答 2

0

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

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

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

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

更新:

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

于 2013-07-14T11:34:39.843 回答
0

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

因为 RSS 已被删除,并且通过 twitter API 返回的唯一响应格式现在是json,所以您将只考虑使用服务器端经过身份验证的 json 请求。

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

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

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

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

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

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

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

于 2013-07-15T09:03:01.073 回答