我需要开发一个应用程序,它可以帮助我在我的应用程序中获取来自Twitter,Facebook等不同服务器的所有状态,消息,并且当我发布消息时,它应该在所有服务中得到更新。我正在使用authlogic进行身份验证。任何人都可以建议我使用什么宝石/插件..
我需要API帮助才能在我的应用程序中显示所有推文/消息,以及通过从我的应用程序发布消息将消息发布到相应服务的方法。任何人都可以从设计角度帮助我。
答案 0 :(得分:0)
了解你想要做的事情。想象一下工作网站,想象一下你的webapp工作开始之前。因此,您的用户登录(由authlogic处理)并看到一个名为“您现在正在做什么?”的文本框。用户填写状态消息并单击“发布”。状态消息显示在之前发布的消息的顶部。
从简单部分开始。创建一个发布到两个服务的类。使用twitter gem和rfacebook发布到两个已定义的服务。将来,您将希望让用户将服务与其帐户相关联,然后您将遍历关联的服务并将消息发布到每个服务。一旦你有了这个工作,你可以稍微重构或抛光UI来完善这个功能。我个人会在最后“为我的个人资料添加社交媒体帐户”功能。
哈德是数据的读取(奇怪的是),因为你将不得不弄清楚如何存储它。你可以存储什么,但我怀疑你一直在搜索API限制(可以围绕这个设计)。我会保留一些与用户的社交媒体帐户相关联的帖子。这样,数据模型将如下所示:
A user has many social media accounts.
A social media account has many posts. (cache)
当然,现在您需要安排帖子的缓存。这可以基于事件(如他们登录时)或基于时间手动完成。因此,当更新发生时,您加载该社交媒体帐户的帖子,用户将在下次访问该页面时看到这些帖子。要在他们盯着屏幕时实时推送到客户端的浏览器,请使用faye(非平凡)和ajax将新帖子拉到社交媒体流视图的顶部。
基于时间的一个是棘手的,因为你要么必须运行一个cron作业,要么让rails用一个类似发条的宝石来处理它。但是你必须让rails继续运行。我还通过让/ lib中的一个类完成所有工作并通过一个简单的Web调用来解决这个问题。但它不是一个多用户用例。所以这可能行不通。在任何情况下,您都希望为这些问题提供一些不错的可重用代码,因为更新请求可能来自许多不同的来源。
您还必须处理API限制。从Twitter下载内容时,您将无法获得所有内容。这只需要用户知道,否则你必须以某种方式指出“时间间隔”。
UI应该非常简单(无论如何都是功能性的),因为您知道帖子/内容来自哪个来源。在帖子旁边放一个小图标可以很容易地显示它来自哪个社交媒体网站。
无论如何,祝你好运,听起来像一个有趣的项目。