`

Facebook中FBML和IFrame的工作原理

阅读更多

在Canvas Page中,用户创建的应用需要使用facebook支持的标签来展示应用的相关内容。Facebook目前支持的两种标记语言为FBML和IFrame。其中FBML为facebook平台提供的一种专门用于开发facebook canvas page的标记语言,由facebook官方开发。Iframe是标准Html中支持的标记语言格式。在canvas page中使用iframe和在一般html页面中使用iframe用法相同。本文主要讲述一下fbml和iframe的工作原理。

 

IFrame工作原理
Iframe是一种灵活的标记语言,当用户通过canvas page访问(http://apps.facebook.com/yourapp)iframe的时候,facebook会向该页面返回一系列的参数。这些参数中包含了用户的授权信息,当iframe获取到这些参数后,就可以正常访问facebook上的用户数据了。

 

上图为iframe在facebook上的工作原理图。当用户访问你的应用时,facebook会验证该应用是否得到当前登录用户的授权,若该应用已经得到用户的授权,facebook向canvas callback url返回session key,应用接收到facebook的session key后就可以于facebook进行交互了。


在使用iframe时,facebook只充当一个权限验证的角色,当用户访问相关的iframe页面是,实际上是与部署了应用的服务器进行交互的,如果交互的内容需要用到facebook的信息时,应用服务器会调用facebook的相关接口来获取相关的数据内容。也就是说在canvas page中使用iframe时,用户的所有交互都是直接与应用服务器进行交互的,而不是直接与facebook进行交互,而与facebook的交互则是由应用服务器来完成的。

 

FBML工作原理

使用facebook开发canvas页面,和使用html开发一个属于自己的系统一样方便。开发者只需要在自己的页面中嵌入fbml就可以直接访问facebook上的相关信息。下面是FBML的工作原理图。

从图中可以了解,当用户登陆后,只要用户授权了改应用,应用服务器就只和facebook进行交互,由facebook统一将返回的结果传递给用户浏览器。这里的facebook就相当一个容器,将应用服务器进行封装,用户使用该应用时的所有请求都是通过facebook来完成的。而不需要用户与应用服务器进行交互。

 

总结:
上面简单的介绍了facebook的canvas的两种不同的标记语言的工作原理。最后总结一下他们各自的优缺点:
<1>iframe的优点:

      (1)可以使用普通html标记,编辑iframe和编辑一般的html页面类似
      (2)可以使用localhost进行调试,这点不同于FBML,FBML的调试必须要通过一个拥有独立IP的服务器,并且这台服务器可以正常的访问facebook。
     (3)在可以使用css,JavaScript。

<2>FBML的优点:
       (1)可以提供比较人性化的url访问路径。
       (2)验证机制比较简单,只需要一个简单的标签即可。
       (3)方便快速的访问facebook上的多种标签。
       (4)加载速度比iframe要快。

 

Iframe和FBMl比较
Iframe的使用和普通的html frame用法相同,因此可以使开发者快速创建自己的应用,开发者可以使用localhost进行调试,而不需要专门部署自己的服务器。但访问速度不如FBML。如果需要访问facebook中的相关数据,还需要用到相关js库的支持。FBML的使用学习起来会有些难度,但是如果熟悉struts或者jsp的自定义标签的用法,FBML用起来也很方便。
FBML是facebook自身提供的标签库,当用户访问FBML的页面时,和访问一般的facebook相同,而不需要应用服务器做中转,因此访问速度会比较慢,FBML唯一的缺点就是测试时需要使用拥有独立IP的服务器。

  • 大小: 32.2 KB
  • 大小: 19 KB
分享到:
评论

相关推荐

    Wicket-FBML-开源

    该库提供了用于为Wicket框架生成FBML(面部书标记语言)的组件。

    FBML:“ Funword”蓝屏我的笔记本电脑

    ,我本来打算将其作为Google home / alexa动作,但是这对人们来说很难实现,我和我的朋友甚至为此制作了广告: : 另外,如果我还没有明确地说出这句话,那么这实际上会使您的计算机蓝屏,这可能对它没有好处。...

    架构之美(中文清晰完整版)

    第6章 数据增长:Facebook平台的架构 109 6.1 简介 109 6.2 创建一个社会关系Web服务 114 6.3 创建社会关系数据查询服务 121 6.4 创建一个社会关系Web门户:FBML 129 6.5 系统的支持功能 142 6.6 总结 147 第...

    架构之美(精选版) - 健壮、优雅、灵活和易维护的软件架构是怎样炼成的?

    健壮、优雅、灵活和易维护的软件架构是怎样炼成的?本书通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的架构师。在每篇文章中,作者都向我们展示了一个著名的软件架构,并分析了什么让其具有...

    架构之美中文文字版(_Reilly)

     第6章 数据增长:Facebook平台的架构 109  6.1 简介 109  6.2 创建一个社会关系Web服务 114  6.3 创建社会关系数据查询服务 121  6.4 创建一个社会关系Web门户:FBML 129  6.5 系统的支持功能 142  ...

    架构之美架构之美架构之美

    第1章 架构概述 ...第4章 数据增长:Facebook平台的架构 4.1 简介 4.2 创建一个社会关系Web服务 4.3 创建社会关系数据查询服务 4.4 创建一个社会关系Web 门户:FBML 4.5 系统的支持功能 4.6 总结

    架构之美中文版(精选版)

    本书目录 目录 ...第4章 数据增长:Facebook平台的架构 4.1 简介 4.2 创建一个社会关系Web服务 4.3 创建社会关系数据查询服务 4.4 创建一个社会关系Web 门户:FBML 4.5 系统的支持功能 4.6 总结

    架构之美(中文版)

    本书围绕5个主题领域来组织本书的内容:概述、企业应用、系统、最终用户应用和编程语言。本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高...

    《架构之美》--王海鹏,蔡黄辉

    1035.7 结论 108第6章 数据增长:Facebook平台的架构 1096.1 简介 1096.2 创建一个社会关系Web服务 1146.3 创建社会关系数据查询服务 1216.4 创建一个社会关系Web门户:FBML 1296.5 系统的支持功能 1426.6 ...

    登录页面源码

    好玩的登录页面&lt;!...&lt;!...&lt;html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook....documentation"&gt;...

    架构之美,高清版

    第4章 数据增长:Facebook平台的架构...........................................................................52 4.1 简介..................................................................................

Global site tag (gtag.js) - Google Analytics