1

假设我想开发一个具有注册用户并将注册为 twitter 应用程序的 Web 应用程序(允许用户授予它查看他们的时间线并代表他们发布的权限)。该应用程序的唯一功能将是根据用户的设置和愿望从用户的时间线转发推文。据我了解,该应用程序的网站将在客户端使用 HTML、CSS 和 JS 等常用技术。服务器端(用户定义应用程序应该转推的推文类型)必须在 PHP/Python/Perl/... 中基于 DB MySQL/Postgre/... 进行编码

我不明白并且非常感谢您的帮助,真正的“业务逻辑”将在哪里编码?例如,我应该使用什么技术来编写将位于我的服务器上的功能:每 5 分钟联系一次 Twitter 服务器,阅读我拥有的每个用户的时间线,检查是否有值得转发的推文(根据用户定义的内容) ),并向 Tweeter 发送必要的命令,以代表我的用户转发所选推文。

所有这一切都将为用户离线发生,并且将是一个持续的和循环的过程——但我应该使用什么技术来编码呢?

谢谢!

4

1 回答 1

0

我听说过这个用于 PHP 的 API。不过,它实际上是我听说过的唯一一个 PHP 版本。我知道那里有一些很好的 Python 库,但我不了解 Perl。

我实际上正在为 C# 开发一个新的 API(不适合你,因为你显然没有使用 Windows 服务器),并在处理一个企业 Web 应用程序时开始构建它,该应用程序提示了几个类似于你的问题自己的。

这是您将要做的事情:

  1. 在开始之前,您必须与 Twitter 的数据合作伙伴之一取得联系(我相信您可以联系 Twitter 以获取参考)
    • 这样做的原因是您将需要比您想象的更多的请求
    • 用于 Twitter 记录速率上限的 Twitter 时间间隔为 900 秒(5 分钟)
    • 如果您在每个速率限制中仅查询一次用户的时间线,则使用一般速率限制,您将网站上的访问者数量限制为一次 300
    • 这就是它变得棘手的地方 - 如果每个用户都发布一条推文(意味着您发送推文 - 不受速率限制 - 然后刷新时间线 - 速率限制 - 以便他们可以看到更新的推文),那么您现在已经放弃了最大活动数用户在任何给定时间增加到 150
    • 考虑公司自己的时间线(-1 位访问者),再加上打开浏览器的访问者数量(现在您需要更多逻辑,您必须将它们踢掉,或者只是跟踪您不会刷新的时间线)、发布超过一条推文的用户数量(每条推文为-1 位访问者)等。
    • 故事的寓意:联系他们的一个数据合作伙伴,让自己获得无限的请求,或者至少有足够多的数量来容纳您的访问者/用户数量(加上一些填充)
    • 如果您遵守此建议,请跳过第 2 步和第 3 步,否则请跳过第 4 步
  2. (注意:第 2 步和第 3 步仅适用于速率上限实施)使用您想要的语言,创建一个在服务器上运行的服务并向 Twitter 发出查询
    • 根据您提供的信息,我建议您使用 Python 来制作此服务
    • 该服务将始终运行并按自己的时钟运行,以将请求之间的 5 分钟间隔基于
    • 您将不得不使用缓存或数据库系统来存储数据
  3. (注意:步骤 2 和 3 仅适用于速率上限实施)添加必要的代码以向您为数据创建的服务发出请求,并每 5 分钟执行一次这些请求
    • 我建议用于向服务发出这些请求的时钟比用于服务的时钟慢一点,以解决数据传输缓慢等情况。
    • 您还必须调用服务上的一些方法来从队列中添加/删除用户
  4. (注意:第 4 步仅适用于无限制请求实施)忘记服务,只需将请求代码直接包含在用户所在的页面中即可。
    • 用户的时间线将根据他们访问网站的时间或上次刷新时间线的时间进行更新(如果发布了推文)
    • 此实施的唯一警告是您必须为无限/更大的数据速率限制付费
于 2013-04-12T20:46:47.640 回答