Facebook中FBML和IFrame的工作原理

系统 1477 0

在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上的用户数据了。

Facebook中FBML和IFrame的工作原理

 

上图为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中FBML和IFrame的工作原理

从图中可以了解,当用户登陆后,只要用户授权了改应用,应用服务器就只和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的服务器。

Facebook中FBML和IFrame的工作原理


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论