日期:2014-05-17  浏览次数:20925 次

使用Apache Shindig为客户应用程序加入社区内容

引用说明:原文来自于http://www.infoq.com/cn/articles/social-content-apache-shindig;jsessionid=2DEB7B2D3177D28C5D104F05423FA20B,为了方便本人阅读,文本格式略有调整。

?

社区网络是目前网络上最热门的事情之一,所以毫不奇怪,许多Web应用程序试图加上社区网络内容来吸引更多的访问者。尽管API正在标准化[1],但大多数现有的社区网站依然提供专有API,或者对OpenSocial的不同版本提供支持,而这正是许多开发人员所面临的挑战。结果是目前OpenSocial有多版本的的API和大量的开源代码支持他们[2]。在这篇文章中我将讨论Apache Shindig[3]如何实现OpenSocial,如何减少其中的一些问题。

相关厂商内容

对快速移动中的数据的分析和行动:复杂事件处理

Flex中的本地化 – 第2部分:在运行时装载资源

Adobe Flash Builder 4简体中文正式版高速下载

高速下载:Adobe Flash Builder 4 简体中文正式版 for Windows

高速下载:Adobe Flash Builder 4 简体中文正式版 for Mac

相关赞助商

汇集最新RIA技术相关资源,提供Flash开发平台相关工具高速下载。

我首先讨论OpenSocial的标准和Shingig架构,然后说明它们如何为一个应用程序添加社区网络内容。最后,将以OpenSocial Gypsii社区网络[4]为例,讲解启用Shindig的方法。

OpenSocial APIs

OpenSocial 所定义的规范[5]:

“OpenSocial 是一组用于构建在网络上运行的社交应用程序的API。OpenSocial 的目标是通过提供一个可在很多不同的环境中使用的通用API ,让更多的应用程序被更多的用户访问。开发人员可以使用标准的javascript 和html 创建应用程序,运行在那些已经应用OpenSocial的社交网站中。这些网站作为OpenSocial的容器,允许开发者访问他们的社区信息;反过来,又为他们的用户收到了大量的应用程序。

OpenSocail API暴露了在一个[社区网络]容器中获取用户以及他们的好友信息的方式。”

社区应用程序围绕人、活动和关系展开。人是社区网络软件和OpenSocial API的基本组成部分。Person对象提供对用户信息的访问接口,它包含了用户的基本信息或其他扩展的信息,如“最喜爱的电视节目”、“我所期望的工作”以及“最喜欢的地方”。OpenSocial API提供了用于查看和更改个人资料的支持。另一个重要的用户信息是他们在社交图中的连接。为了能够共享信息和体验朋友动态变化,OpenSocial支持用户的朋友概念,并提供检索用户朋友信息的API。当应用程序想进行交互或显示“朋友的朋友”的数据,OpenSocial允许增加一个你所做操作的可选过滤器来支持扩展查询,如用户可以通过朋友的距离来排序。容器可以有选择地支持“朋友的朋友”查询,“朋友的朋友的朋友”的查询,等等。 OpenSocial还允许朋友分享他们最近一直在做的信息-这些被称为活动。OpenSocial的公开活动流是一个用户所采取的行动的集合。活动模板允许应用程序开发人员在消息中为应用程序或用户数据块定义占位符。这种数据层和显示层的分离允许多个活动合并成活动包:活动综合包,让用户知道他们朋友消息,而不必辛苦地搜集大量消息。社区互动的另一个重要方面是能够读取,张贴和删除用户之间在网络中的消息。 OpenSocial定义的消息类型,包括公共消息(如文件的评论)和私人消息(仅限于某些个人和团体)。消息归纳,其中包括一个唯一的ID,名称和信息数量大小。

目前的规范定义了两种版本的API──JavaScript[6]和REST[7]。

OpenSocial的JavaScript规范是提供一个小工具Gadget[8]设计来支持OpenSocial的功能。架构如图1:

图1 使用JavaScript OpenSocial API典型架构

在这种情况下,一个用户应用程序被作为一个Gadgets的集合,Gadget自己用OpenSoical API可以获取社