【问题标题】:How can I use a twitter stream of direct messages as input?如何使用 Twitter 直接消息流作为输入?
【发布时间】:2011-01-13 08:51:56
【问题描述】:

我正在用 PHP 和 MySQL 编写一个 Web 应用程序。我希望用户能够通过 twitter 与网站进行交互。如果您熟悉 RememberTheMilk 如何将 twitter 整合为创建任务和其他活动的一种方式,那么您就会对我想要完成的工作有所了解。
互动会很简短。例如:User_Jay 向我的 Twitter 帐户发送直接消息;我的应用程序经常检查直接消息流,当它看到 User_Jay 的消息时,应用程序识别出一个关键短语并执行一些代码;执行代码后,应用程序会直接向 User_Jay 发送消息。结束。
我不知道哪个 Twitter 库最适合这项工作。我也不确定如何根据他们的直接消息为特定用户执行代码。
_
作为参考,用户将在实际站点上创建帐户,并在那里声明他们的 Twitter 用户名。
此外,我们将非常感谢您提供完成此类事情的示例代码或示例代码链接。

【问题讨论】:

  • 我是否正在考虑设置一个守护程序来解析来自 Twitter 流 API 的数据?

标签: php mysql twitter


【解决方案1】:

您可以使用 Twitter 流 API 来发送直接消息。第一件事是您不必用 PHP 编写它。虽然您可能使用 PHP 编写网站,但这并不意味着您必须使用 PHP 来获取推文的后台进程。

首先,您需要一些代码来处理来自User Streams API 的数据。我不确定是否有一个用于 PHP,但phirehose 接近。有一个补丁可以让它支持用户流。

如果您找不到支持用户流的 PHP 库,我建议您考虑使用 Ruby。用 Ruby 编写守护程序非常容易,您可以使用像 twitterstream 这样支持用户流的库。

然后您需要编写一些基本上处理用户流的代码:检查您收到的内容是否是直接消息并将其放入数据库中。您可能还想考虑如果这变得流行,您打算做什么,并考虑队列和数据库速度等等。如果您要发送响应,则需要考虑 API 速率限制等等。

使用流式 API 与使用拉式 API 非常相似:您会得到一个带有一整套键值对的 JSON 数据块。你如何决定你正在处理哪个用户?好吧,您查看用户密钥并找到他们的用户名。

您还需要提出使用 DM 与网站交互的语法,并且您需要创建基于正则表达式的解析器,或者可能使用词法分析器。您还需要使用单元测试等非常努力地进行测试。您正在接受来自用户的文本:不要相信它!

流式 API 并不是唯一的方法:您还可以运行 cron 作业并检查 API 是否有新消息。这更容易,但没有那么好。

【讨论】:

    猜你喜欢
    • 2015-09-15
    • 2011-05-08
    • 2017-07-12
    • 2011-09-17
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2020-07-14
    • 2012-02-09
    相关资源
    最近更新 更多