基于Shindig创建具有Embedded Experience特性的gadget

Open Social2.0 与 Embedded Experiences 特性

OpenSocial 是定义社交网站的应用和访问社交网站的数据的一 个统一的标准:统一的 gadget 应用模型和 gadget 容器;统一的 OpenSocial API 用来访问社交网站的数据。OpenSocial 2.0 的发布为 OpenSocial 带来了若干新的特性。比如说,提供了 Activity Streams 的支持,简化了 gadget 的格式,新 增 OAuth2 支持,增加了对 OpenSearch 支持,以及我们将要提到的嵌入式体验 (Embedded Experiences)。

通俗的 说,Embedded Experiences 就是将一个服务嵌入到另外一个服务中去。这使得用户无需离开当前服务的上下文即可使用另 外一个服务提供的功能和体验。例如,在一个社交网站上上传一个视频地址。那么,这个上传的视频将以视频播放器的形式 出现。用户在不用离开当前站点情况下,就可以如同在视频站点一样操作该视频。再例如,用户在使用邮件客户端的时候, 收到来自某图片分享网站的通知,那么这封邮件里的嵌入式体验将允许用户在邮件中像在图片网站一样,浏览、收藏、品论 、删除和分享图片。

如今已经存在着各式各样的嵌入式体验解决方案。一些社交网站和邮件客户端通过识别内容中 的 url,然后再决定如何渲染这些 url 的内容,以达到嵌入式体验的目的。例如 Twitter 对 Youtube 视频的处理。如果 在 Twitter 中上传一段包含 Youtube 的视频 url 的文字,Twitter 将自动地识别出这个 url 是 Youbute 中的一段视频 ,并且为这个视频提供一个播放器以满足用户播放的需求,但是用户还是无法得到如同在 Youtube 中对该视频的操作体验 ,而只是能够播放视频。Google 的 Google's Contextual gadgets 则更进一步的提供了分析 email 中以任何形式存 在的内容,并将此内容用于 gadget 的能力。

OpenSocial 社区意识到了通过直接使用 gadget 来完成嵌入式体验的 必要性,于是在 OpenSocial 2.0 中,提供出了 Embedded Experiences 这一机制 ( 下文中如果提及 Embedded Experiences 将代表 OpenSocial 中的 Embedded Experiences 机制 )。OpenSocial 为 Embedded Experiences 提供了与 上文中提到的那些嵌入式体验解决方案截然不同的方式。它并不依赖于内容识别器去识别出需要提供嵌入式体验的内容,也 不用为嵌入式内容提供渲染方案,而是将这些职责交给内容提供方来完成。这一切都将可以通过 opensocial 的 gadget 的 来实现,于是就大大简化了目标服务 ( 社交网站、邮件客户端等 ) 的工作。目标服务将无需去完成一些类似安装内容识别 器这样的繁琐工作。这种做法是对 Embedded Experiences 的一次重大改进,它的特性决定了它有如下优点:

服务的完整性:嵌入式内容将可以轻松获得来自内容提供方提供的最为完整的服务,将以完全符合内容服务使用方式的 形态被渲染在目标服务中。

安全性:只有通过用户 approve 后的 gadget 才会以嵌入式服务的形式被渲染。因此也降低了在邮件等目标服务中执行 一段的不可信任的脚本的可能。同时 OpenSocial 2.0 支持了 OAuth 2.0,可以通过 OAuth 去访问内容主机上的服务 ( 关 于安全的问题这里不多做阐述 )。

面向用户关注:用户可以选择性的 approve gadget,因此目标服务中的内容只会将用户关注的这些内容渲染为嵌入式体 验。而用户不感兴趣的内容将只会以比如简单的 html 被渲染。

灵活性:目标服务将不用关心嵌入式体验服务的更新,因为服务的方式将不再是目标服务来提供,嵌入式服务的更新只 须要内容服务更新相应的 gadget 就可以实现。并且更新的变化可以轻松的体现在过期的内容 ( 比如之前已经发出的邮件 ) 中。而且用户也可以灵活的在不同的使用环境中选择是否渲染嵌入式内容。

Embedded Experiences 的数据模型

OpenSocial 2.0 规范中为 Embedded Experiences 定义了数据模型,包含了 以下部分:

url:该属性用于指定一个 web 页面作为 Embedded Experiences 的渲染方式。

gadget:该属性用于指定一个 gadget 作为 Embedded Experiences 的渲染方式。

context:该属性为 Embedded Experiences 的内容。

previewImage( 可选 ):该属性为 Embedded Experiences 的预览图片。

时间: 2024-08-03 17:46:26

基于Shindig创建具有Embedded Experience特性的gadget的相关文章

构建基于Open Social 2.0具有嵌入式体验特性的gadget

本文介绍了如何基于 Open Social 2.0 规范构建一个具有 Embedded Experiences 特性的 gadget.以及如何使用 Shindig 3.0 作为 gadget 容器来了解 Embedded Experiences. OpenSocial 是定义社交网站的应用和访问社交网站的数据的一个统一的标准:统一的 gadget 应用模型和 gadget 容器:统一的 OpenSocial API 用来访问社交网站的数据.OpenSocial 2.0 的发布为 OpenSoci

基于jQuery创建鼠标悬停效果的方法_jquery

本文实例讲述了基于jQuery创建鼠标悬停效果的方法.分享给大家供大家参考.具体实现方法如下: 1. 创建HTML: <ul> <li><a href="/tv"><img src="images/tv_off.gif" class="mainnav"></a></li> </ul> 2. 选择.mainnav的class: $(".mainnav&qu

基于catalog 创建RMAN存储脚本

--============================== -- 基于catalog 创建RMAN存储脚本 --==============================       简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本. 客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度.   一.脚本的分类     local : 在rman连接的目标数据库下创建的脚本

JS基于FileSystemObject创建一个指定路径的TXT文本文件_javascript技巧

本文实例讲述了JS基于FileSystemObject创建一个指定路径的TXT文本文件.分享给大家供大家参考.具体如下: Js创建一个指定路径的TXT文本文件,创建一个新的new ActiveXObject对象,使用这个对象的CreateTextFile方法来创建一个指定路径的TXT文本文件,简单吧? 在IE浏览器上运行该实例会有对应的安全提示,选择"允许阻止的内容",使程序正常运行即可.如下图所示: 文本文件创建成功后提示如下: 若文本文件已存在,则有如下提示: 具体代码如下: &l

基于web创建逼真的3D图形 | CSS技巧

在成为一名web开发者之前,我从事于视觉设计行业,创造屡获殊荣,电影和电视节目等高端3D效果,例如 Tron, The Thing, Resident Evil,和 Vikings .为了能够创造这些效果,我们需要使用高度复杂的动画软件,例如 Maya , 3Ds Max 或者 Houdini ,包括使用数以百计的机器 渲染机器 来做长时间的离线渲染.正因为我工作以来一直使用这些工具,以至于我对现在的web技术感到很惊讶.我们可以创造和显示高质量的3D内容在浏览器里面,实际上,就是使用webGL

基于Angular创建后台数据模拟(译)

我们已经习惯用AngularJS来创建前后端分离的应用,同时为了便于开发也会通过在前端代码库中使用mock数据来模拟服务端的接口.使用mock数据具有以下诸多的好处: * 如果你并不是接口api的开发者,使用mock数据你就不用等待接口api设计完成就可以开始本地开发 * 如果你自己开发接口的api,使用mock数据不仅可以让你更专注于前端开发,还不比纠结于后端具体的细节实现 * 你可以快速的开发内容而不用管后台逻辑 * 建立mock服务还可以帮助你设计接口api的结构 * mock数据服务还可

基于 WebRTC 创建一款多人联机游戏

本项目的目标旨在尽可能少用服务器资源的前提下研发一款在线多人游戏,同时期望在一个用户的浏览器上运行游戏,同时让另一个玩家来连接.此外还希望程序尽可能简单以便于在博客中分析. 运用的技术 在我刚接触 P2P 网络技术的时候便发现了 WebRTC,并认为这项技术正好适合此项目.WebRTC 是一个新型网络标准旨在给网络浏览器提供即时通信的能力.大部分 WebRTC 案例都是关于建立一个视频或者音频流,但是这项技术也可以用来传输二进制数据.在此项目中,更倾向于使用数据通道将用户的输入传输到主机:游戏状

基于PHP创建Cookie数组的详解

本篇文章是对在PHP中创建Cookie数组的方法进行了详细的分析介绍,需要的朋友参考下   创建: 复制代码 代码如下: setcookie("ICNet[Reg]", "This is reg cookie", time() + 3600); setcookie("ICNet[Active]", "This is login cookie.", time() + 3600); print_r($_COOKIE); /*Res

基于PHP创建Cookie数组的详解_php技巧

创建: 复制代码 代码如下: setcookie("ICNet[Reg]", "This is reg cookie", time() + 3600);setcookie("ICNet[Active]", "This is login cookie.", time() + 3600);print_r($_COOKIE); /*Result:Array (  [ICNet] => Array ( [Reg] => T