Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将twitter、facebook和其他服务集成到一个站点中_Ruby On Rails_Facebook_Twitter - Fatal编程技术网

Ruby on rails 将twitter、facebook和其他服务集成到一个站点中

Ruby on rails 将twitter、facebook和其他服务集成到一个站点中,ruby-on-rails,facebook,twitter,Ruby On Rails,Facebook,Twitter,我需要开发一个应用程序,它应该帮助我在我的应用程序中获取所有状态、来自Twitter、facebook等不同服务器的消息,并且当我发布消息时,它应该在所有服务中得到更新。我正在使用authlogic进行身份验证。有人能建议我可以使用哪些gems/插件吗 我需要API帮助,以获得所有tweet/消息将显示在我的应用程序中,以及通过从我的应用程序发布消息来将消息发布到相应服务的方法。有谁能从设计的角度来帮助我。在脑海中仔细想想你想做什么。想象一下工作的网站,想象一下你的webapp在你开始工作之前是

我需要开发一个应用程序,它应该帮助我在我的应用程序中获取所有状态、来自Twitter、facebook等不同服务器的消息,并且当我发布消息时,它应该在所有服务中得到更新。我正在使用authlogic进行身份验证。有人能建议我可以使用哪些gems/插件吗


我需要API帮助,以获得所有tweet/消息将显示在我的应用程序中,以及通过从我的应用程序发布消息来将消息发布到相应服务的方法。有谁能从设计的角度来帮助我。

在脑海中仔细想想你想做什么。想象一下工作的网站,想象一下你的webapp在你开始工作之前是如何工作的。因此,您的用户登录(由authlogic处理)并看到一个名为“您现在在做什么?”的文本框。用户填写状态消息并单击“发布”。状态消息显示在他们以前发布的消息的顶部

从简单的部分开始。创建一个发布到两个服务的类。使用twittergem和rfacebook发布到两个已经定义的服务。将来,您将希望让用户将服务关联到他们的帐户,您将迭代关联的服务并将消息发布到每个服务。一旦你有了这项工作,你可以重构或润色一下UI来完善这个特性。我个人会在最后做“将社交媒体帐户添加到我的个人资料”功能

更难的是数据的读取(奇怪的是),因为你必须弄清楚如何存储它。您无法存储任何内容,但我怀疑您一直在搜索(可以围绕此进行设计)会遇到API限制。我会保留一些与用户的社交媒体帐户相关的帖子。这样,数据模型将如下所示:

A user has many social media accounts.
A social media account has many posts. (cache)
当然,现在需要安排帖子的缓存。这可以手动完成,基于事件(比如他们登录时)或基于时间。因此,当更新发生时,您加载该社交媒体帐户的帖子,用户将在下次点击页面时看到这些帖子。为了在客户盯着屏幕时实时推送到他们的浏览器,可以使用faye(非平凡)和ajax将新帖子推到社交媒体流视图的顶部

基于时间的任务很棘手,因为要么运行cron作业,要么让rails用gem一样的时钟来处理这一切。但是你必须让rails继续运行。我还通过让/lib中的一个类完成所有工作并通过一个简单的web调用启动更新来解决这个问题。但它不在多用户用例中。所以这可能行不通。在任何情况下,您都需要一些很好的可重用代码来解决这些问题,因为更新请求可能来自许多不同的来源

您还必须处理API限制。当你从推特上下载内容时,你不会得到一切。用户必须知道这一点,否则您必须以某种方式指示“中断时间”

UI应该非常简单(不管从功能上讲),因为您知道帖子/内容来自哪个来源。在帖子旁边放一个小图标来显示它来自哪个社交媒体网站是很容易的


不管怎样,祝你好运,听起来是个有趣的项目。

嘿,这是一个很棒的答案,即使它已经5岁了。我正在研究一个混合的社交媒体源,并想问一个关于这个主题的附加问题:您是否总是建议先将所有帖子(比如fb、twitter、vine和youtube API的JSON文件)保存在您自己的服务器上,然后通过Cronjob更新,然后访问该本地文件,而不是在用户打开站点时向不同的网络API发送Ajax请求?我可以想象,第一种选择要快得多,对吗?你可以使用缓存来实现这一点,而不是将其视为文件。如果您真的想提供提要(从您的服务器)。缓存的问题(正如您在cron思想中暗示的那样)是保持它的新鲜或知道何时删除它。Cron也有自己的问题(它是一个时钟,时钟在很多时候都不是一个很好的事件度量标准),例如,你的社交网络提要服务可能希望成为“最新的事物”,但它的行为就像“我一小时前刷新以来的最新事物”,RSS可能没有其他选择。我明白了,但如果我“存储”所有数据首先在我自己的服务器上,我可以消除加载页面时访问所有不同API的额外延迟。对吗?我知道Cronjob不能真正提供实时的Livefeed,但为了提高性能,我认为用户体验会得到增强。或者是否有其他方法可以实现相同的性能/速度?我对缓存不太熟悉,但是否有一个选项可以只获取已更改的新内容并将其更新到该缓存?Wich意味着用户浏览缓存,而服务器端什么都没有,对吗?谢谢有浏览器数据存储,但我可能会将其缓存在服务器上。我想你可以制作一个完全没有服务器的应用程序来实现这一点,但是你必须担心内存限制和浏览器性能。另外,我使用的浏览器数据存储与服务器端数据存储没有直接的可比性。根据我的经验,它们要简单得多,但我不是SPA/javascript权威。好的,非常感谢您的帮助!最后一个问题:如果我在自己的服务器上使用JSON文件,并在客户端加载页面时访问它们来构建视图,我可以避免用户看到缓存的不推荐页面。我认为在服务器上使用http缓存是交付静态页面的更好、更快的选择,但是当没有新内容时,如何确保用户只获得缓存视图呢?或者在需要时获取新内容?如果客户机必须经常访问新内容,那么缓存在性能上还会优于访问JSON文件吗?