29

人人网开放平台浅谈

作者: wuzhimin 分类:架构实践   阅读:17,043 次 添加评论

文 / 李志才  李福松作者

人人网于2008年7月8日正式对外发布了开放平台战略,从此全面拉开了中国互联网的开放平台时代。开放平台成为创新者和创业者的乐土,各种开发团体、个人、开发公司都进驻开放平台,各种应用产品五花八门,极大地满足了用户的需求,涌现出了很多优秀的应用产品。像风靡世界的开心农场就是从人人网开放平台率先推出并迅速受到广大用户喜爱,一时间全民挖菜,场面蔚为壮观。国际上颇具影响力的著名IT科技杂志《连线》评选出了“过去十年最具影响力的15款游戏”,开心农场排名十四。在收获优秀应用产品的同时,开放平台也帮助众多开发者迅速创业成功。下面将从平台架构、授权机制、API、人人小部件等几个方面介绍一下开放平台。

平台架构

人人网开放平台是一个通用的开放平台,具有灵活的架构,能够支持站内应用、站外Web和WAP网站、桌面应用,以及iPhone、Android等移动终端上应用的接入。而且,人人网开放平台的架构正向着标准化和简洁易用的方向发展。在人人网开放平台的技术架构中,验证授权和人人API是最核心服务。验证授权,是为了识别用户身份并引导用户对第三方应用所要求的访问权限进行处理,用户可以同意或拒绝授予第三方权限,这样就在很大程度上保证了用户的隐私安全。人人网开放平台的验证授权服务,实现了业界最先进的OAuth 2.0协议,它与现存的其他授权方式相比,在适用范围和易用性上都有了非常大的提高。下面会有专门的章节进行介绍。第三方应用在获得用户的授权后,就可以调用人人API了。通过人人API,第三方应用能够完成各种各样的功能,如获取到当前用户的个人信息、好友关系等,还可以完成很多以前必须在人人网上才能完成的动作,如发表状态、发表日志、上传照片等。人人API采用RESTful的方式以HTTP协议提供服务,使得它的调用方式简单统一,能够适用于任何网络环境。

与人人网的紧密集成在人人网上开发的应用,可以与人人网的用户功能紧密集成,例如,第三方应用可以在人人网提供的一个容器(apps.renren.com)中运行,并可进入左侧菜单,让用户感觉第三方的应用就是一个真正的站内应用。这样的紧密集成,在很多微博类的开放平台中是不具备的,它能够极大地提升用户体验。为了支持这样的紧密集成,站内应用分为两大基本类型:XNML类应用和iframe类应用。XNML的全称是XiaoNei Markup Language(校内标记语言)。在XNML类应用中,除了上述的验证授权和人人API这两项基本服务之外,还提供了XNML标签解析服务。当用户浏览器请求apps.renren.com容器时,人人网代理服务器向第三方服务器请求一段XNML代码,这样的代码由HTML标签、CSS、JavaScript以及经过扩展的XNML标签组成。一个XNML标签类似于<xn:name>这样的形式,使得第三方开发者在应用中集成人人网的功能异常简单。当XNML代码返回时,中途被人人网XNML标签解析服务进行渲染,成为真正的HTML代码返回给浏览器显示。由于第三方返回的XNML 代码中存在JavaScript和CSS,因此人人网XNML标签解析服务器对这些JavaScript和CSS进行了安全过滤,过滤后的代码能够安全地运行在人人网的站内应用容器中。这种在XNML类应用中使用JavaScript和CSS的技术分别称为XNJS和XNCSS,系统架构如图1所示。第二大类站内应用称为iframe类应用。这类应用是直接在人人网的站内应用容器页面中嵌入一个iframe,用iframe的src指向第三方服务器地址。这种集成方式调试更加简单,与用户信息的集成主要依靠前面讲到的人人API技术;但缺点就是无法再使用简单易用的XNML标签。为了解决这一矛盾,人人网开放平台为iframe类应用开发了EXNML(扩展的XNML),允许第三方开发者能够在iframe类应用中仍然使用类似于XNML的标签。另外,EXNML也能够被第三方人人连接网站使用。

人人连接架构

架构

人人连接技术允许用户用人人网账号登录第三方网站,进行帐号绑定,分享精彩内容,并携带社会化图谱进入第三方网站,与好友在第三方网站上深入互动。人人连接基于OAuth 2.0授权技术,在用户验证和授权完成之后,以一种安全的方式将用户会话信息传递给第三方网站。由于用户在renren.com域名下进行验证和授权,与第三方网站处于不同的域名,因此需要跨域的技术来传递信息。

跨域技术,在人人连接的技术体系中占据非常重要的地位。实现跨域的技术方案多种多样,如JSONP、iframe、Flash、postMessage等机制。人人连接还实现了一整套的JavaSc r iptSDK,允许第三方通过JavaScript调用就能够完成获取用户和好友信息,发送自定义新鲜事等功能。另外,JavaScript SDK还通过页面渲染的方式能够识别EXNML标签,以类似于XNML的方式来调用功能。

人人连接是一个宽泛的技术概念, 它还包含了人人网开放平台提供的诸多小部件(Widget),这里面有人人喜欢、实时讨论、粉丝部件、好友派等。这些Widget是一种嵌入式的小插件,第三方可以以iframe的方式随意将它们嵌入到网站中去,具有简单易集成且功能丰富的特点。其中人人喜欢是一项重要技术,它遵循Open Graph协议,允许用户把任何他所喜欢的站外网页和资源当作一个人人网的公共主页来对待,便于日后追踪和获取动态更新。

……

(本文节选自《程序员》杂志11年03期《人人网开放平台浅析》一文,全文请见03期杂志)

《程序员》11年03期精彩内容:2011开放平台之征

《程序员》杂志订阅

人人网于2008年7月8日正式对外发布了开放
平台战略,从此全面拉开了中国互联网的
开放平台时代。开放平台成为创新者和创业者的
乐土,各种开发团体、个人、开发公司都进驻开
放平台,各种应用产品五花八门,极大地满足了
用户的需求,涌现出了很多优秀的应用产品。像
风靡世界的开心农场就是从人人网开放平台率
先推出并迅速受到广大用户喜爱,一时间全民挖
菜,场面蔚为壮观。国际上颇具影响力的著名IT
科技杂志《连线》评选出了“过去十年最具影响
力的15款游戏”,开心农场排名十四。在收获优
秀应用产品的同时,开放平台也帮助众多开发者
迅速创业成功。
下面将从平台架构、授权机制、API、人人
小部件等几个方面介绍一下开放平台。
平台架构
人人网开放平台是一个通用的开放平台,具
有灵活的架构,能够支持站内应用、站外Web和
WAP网站、桌面应用,以及iPhone、Android等移
动终端上应用的接入。而且,人人网开放平台的
架构正向着标准化和简洁易用的方向发展。
在人人网开放平台的技术架构中,验证授权
和人人API是最核心服务。验证授权,是为了识
别用户身份并引导用户对第三方应用所要求的访
问权限进行处理,用户可以同意或拒绝授予第三
方权限,这样就在很大程度上保证了用户的隐私
安全。人人网开放平台的验证授权服务,实现了
业界最先进的OAuth 2.0协议,它与现存的其他
授权方式相比,在适用范围和易用性上都有了非
常大的提高。下面会有专门的章节进行介绍。
第三方应用在获得用户的授权后,就可以
调用人人API了。通过人人API,第三方应用能够
完成各种各样的功能,如获取到当前用户的个人
信息、好友关系等,还可以完成很多以前必须在
人人网上才能完成的动作,如发表状态、发表日
志、上传照片等。人人API采用RESTful的方式以人人网于2008年7月8日正式对外发布了开放平台战略,从此全面拉开了中国互联网的开放平台时代。开放平台成为创新者和创业者的

乐土,各种开发团体、个人、开发公司都进驻开放平台,各种应用产品五花八门,极大地满足了用户的需求,涌现出了很多优秀的应用产品。像风靡世界的开心农场就是从人人网开放平台率先推出并迅速受到广大用户喜爱,一时间全民挖菜,场面蔚为壮观。国际上颇具影响力的著名IT科技杂志《连线》评选出了“过去十年最具影响力的15款游戏”,开心农场排名十四。在收获优秀应用产品的同时,开放平台也帮助众多开发者迅速创业成功。下面将从平台架构、授权机制、API、人人小部件等几个方面介绍一下开放平台。

平台架构

人人网开放平台是一个通用的开放平台,具有灵活的架构,能够支持站内应用、站外Web和WAP网站、桌面应用,以及iPhone、Android等移动终端上应用的接入。而且,人人网开放平台的架构正向着标准化和简洁易用的方向发展。在人人网开放平台的技术架构中,验证授权和人人API是最核心服务。验证授权,是为了识别用户身份并引导用户对第三方应用所要求的访问权限进行处理,用户可以同意或拒绝授予第三方权限,这样就在很大程度上保证了用户的隐私安全。人人网开放平台的验证授权服务,实现了业界最先进的OAuth 2.0协议,它与现存的其他授权方式相比,在适用范围和易用性上都有了非常大的提高。下面会有专门的章节进行介绍。第三方应用在获得用户的授权后,就可以调用人人API了。通过人人API,第三方应用能够完成各种各样的功能,如获取到当前用户的个人信息、好友关系等,还可以完成很多以前必须在人人网上才能完成的动作,如发表状态、发表日志、上传照片等。人人API采用RESTful的方式以HTTP协议提供服务,使得它的调用方式简单统一,能够适用于任何网络环境。

与人人网的紧密集成在人人网上开发的应用,可以与人人网的用户功能紧密集成,例如,第三方应用可以在人人网提供的一个容器(apps.renren.com)中运行,并可进入左侧菜单,让用户感觉第三方的应用就是一个真正的站内应用。这样的紧密集成,在很多微博类的开放平台中是不具备的,它能够极大地提升用户体验。为了支持这样的紧密集成,站内应用分为两大基本类型:XNML类应用和iframe类应用。XNML的全称是XiaoNei Markup Language(校内标记语言)。在XNML类应用中,除了上述的验证授权和人人API这两项基本服务之外,还提供了XNML标签解析服务。当用户浏览器请求apps.renren.com容器时,人人网代理服务器向第三方服务器请求一段XNML代码,这样的代码由HTML标签、CSS、JavaScript以及经过扩展的XNML标签组成。一个XNML标签类似于

<xn:name>这样的形式,使得第三方开发者在应用中集成人人网的功能异常简单。当XNML代码返回时,中途被人人网XNML标签解析服务进行渲染,成为真正的HTML代码返回给浏览器显示。由于第三方返回的XNML 代码中存在JavaScript和CSS,因此人人网XNML标签解析服务器对这些JavaScript和CSS进行了安全过滤,过滤后的代码能够安全地运行在人人网的站内应用容器中。这种在XNML类应用中使用JavaScript和CSS的技术分别称为XNJS和XNCSS,系统架构如图1所示。第二大类站内应用称为iframe类应用。这类应用是直接在人人网的站内应用容器页面中嵌入一个iframe,用iframe的src指向第三方服务器地址。这种集成方式调试更加简单,与用户信息的集成主要依靠前面讲到的人人API技术;但缺点就是无法再使用简单易用的XNML标签。为了解决这一矛盾,人人网开放平台为iframe类应用开发了EXNML(扩展的XNML),允许第三方开发者能够在iframe类应用中仍然使用类似于XNML的标签。另外,EXNML也能够被第三方人人连接网站使用。

人人连接架构

人人连接技术允许用户用人人网账号登录第三方网站,进行帐号绑定,分享精彩内容,并携带社会化图谱进入第三方网站,与好友在第三方网站上深入互动。人人连接基于OAuth 2.0授权技术,在用户验证和授权完成之后,以一种安全的方式将用户会话信息传递给第三方网站。由于用户在renren.com域名下进行验证和授权,与第三方网站处于不同的域名,因此需要跨域的技术来传递信息。

跨域技术,在人人连接的技术体系中占据非常重要的地位。实现跨域的技术方案多种多样,如JSONP、iframe、Flash、postMessage等机制。人人连接还实现了一整套的JavaSc r iptSDK,允许第三方通过JavaScript调用就能够完成获取用户和好友信息,发送自定义新鲜事等功能。另外,JavaScript SDK还通过页面渲染的方式能够识别EXNML标签,以类似于XNML的方式来调用功能。

人人连接是一个宽泛的技术概念, 它还包含了人人网开放平台提供的诸多小部件(Widget),这里面有人人喜欢、实时讨论、粉丝部件、好友派等。这些Widget是一种嵌入式的小插件,第三方可以以iframe的方式随意将它们嵌入到网站中去,具有简单易集成且功能丰富的特点。其中人人喜欢是一项重要技术,它遵循Open Graph协议,允许用户把任何他所喜欢的站外网页和资源当作一个人人网的公共主页来对待,便于日后追踪和获取动态更新。

转播到腾讯微博

----->立刻申请加入《程序员》杂志读者俱乐部,与杂志编辑直接交流,参与选题,优先投稿

18 Responses to “人人网开放平台浅谈”

  1. lohu 说道:

    开放才是王道

  2. songyy 说道:

    有点扯了吧……说开心农场最早是从人人网出现的?

  3. 说道:

    最早是开心网好吧 不要往自己脸上贴金啦 最早是你们开发的为什么不叫人人农场呢;

  4. 有声小说 说道:

    贵州这已经几个月没有《程序员》卖了,是不是《程序员》不对贵州发行了啊?

  5. andi 说道:

    xnml exnml,一下子就这么多个ml,囧 是因为添加了<>符号或者增强的实体么?这与xml有什么区别呢?加入这么概念做啥子。

  6. north face outlets 说道:

    good post! thank you for share it!

  7. yujian_yong 说道:

    en ,收益不浅。

  8. xiaohuangdou 说道:

    wigs sale 人人网很好玩啊

  9. buy north face 说道:

    I was recommended by one of my relatives to check out your website.

  10. north face outlets 说道:

    Technology will change the fate, can also change the life
    http://www.northface-outlets.org/

  11. cheap north face 说道:

    See this article gave me great feeling, it is worth to study, if you have time can also see my articles, thank you!

  12. sam 说道:

    说的很棒!!

  13. replica 说道:

    写的还不错啊

  14. 人人网真的很好啊,不错……..支持

  15. 123 说道:

    很好啊…….

  16. moey 说道:

    说的很好……

请评论

preload preload preload
京ICP备06065162