`

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
分享到:
评论

相关推荐

    理解_Facebook_应用程序的架构

    iFrame Facebook应用程序的工作原理是,当用户访问应用时,Facebook服务器会判断是iFrame应用,并将请求转发到开发者服务器,加载嵌入在Facebook页面中的应用内容。这使得开发者可以自由控制应用的网页设计,提供...

    creat Facebook Application

    需要注意的是,Facebook应用程序有两种主要类型:FBML和Iframe。FBML(Facebook Markup Language)是Facebook自己定义的一种语言,提供了特定的函数供开发者使用。然而,随着技术的发展,FBML逐渐被IFrame取代,...

    Facebook的连接创建一个新的ASP.NET应用程序

    尽管FBML已被弃用,但理解其工作原理可以帮助开发者更好地理解Facebook的早期开发环境。 7. **库和资源**:文件名中的“lib”可能表示包含了一些必要的库或依赖项,这些可能是在项目中与Facebook API交互所必需的。...

    facebook的架构设计应用到企业级开发中.doc

    这些应用可以作为一个独立的服务存在,但又能整合到统一的企业门户中,提高用户体验和工作效率。 2. **统一接口与API标准**: Facebook提供了统一的API和数据交换格式,使得不同应用程序间能够顺畅通信。企业级...

    facebook开发帮助

    通过以上步骤,你已经成功创建了一个Facebook开发者应用,并完成了基本的配置工作。接下来,可以根据具体需求进行更深入的功能开发和集成。Facebook开发者平台提供了丰富的文档和社区支持,包括API文档、示例代码...

    facebook的架构设计应用到企业级开发中

    将Facebook的架构设计应用到企业级开发中,不仅能够解决企业内部系统碎片化、难以集成的问题,还能提升用户体验,促进模块化开发与资源共享。本文将深入探讨如何借鉴Facebook的架构设计,尤其是其开放平台(F8)的...

    FaceBook架构设计.pdf

    综上所述,文件中所涉及的知识点涵盖了Facebook的Web技术、Web 2.0特性、API和编程语言、用户交互和社交互动功能、数据获取方式、开发者资源以及应用程序类型等方面。这些都是构成Facebook复杂技术架构的关键组件。

    Facebook Markup Language

    Facebook Markup Language(简称 FML 或 FML)是一种由 Facebook 开发并用于创建应用程序界面和构建 Facebook 平台内应用的标记语言。该语言允许开发者使用类似于 HTML 的语法来设计用户界面,并且能够与 Facebook ...

    facebook-api.doc

    以上就是Facebook API的一些关键功能和用法,它们共同构成了一个强大的工具,让开发者能够构建丰富的社交应用和功能,与Facebook平台深度集成。通过熟练掌握这些API,开发者可以创建出吸引用户并增强社区互动的应用...

    Wicket-FBML-开源

    总结来说,"Wicket-FBML-开源"是一个旨在简化Wicket框架下Facebook功能集成的库,它通过提供一系列的FBML组件,使得开发者可以便捷地在Web应用中实现与Facebook的互动。配合Facebook的Java API和实用工具,开发者...

    fb-open-platform.tar.gz

    从这个压缩包中,开发者可以学习到Facebook开放平台的历史、架构、接口使用和数据处理等方面的知识,同时也能了解开源软件的许可和协作模式。对于希望深入了解Facebook平台开发或对社交网络应用感兴趣的开发者来说,...

    2022年市场-世界成长最快it企业脸谱网站的移动用户体验与服务facebo.pptx

    6. **移动个人资料**:移动个人资料是专为手机设计的,包含XHTML内容和部分FBML(Facebook标记语言),可以包含链接到应用画布页面。通过setFBML API调用的updated参数来设置个人资料标记。 7. **移动应用画布页面*...

    世界成长最快it企业脸谱网站的移动用户体验与服务facebo.ppt

    - **移动专用个人资料**:包含XHTML内容和部分FBML(Facebook标记语言),可以链接到应用画布页面,自动归于m.facebook.com域下。 - **移动专用画布页面**:支持交互式功能,如表单提交,以fb:mobile标签内渲染,...

    世界成长最快it企业脸谱网站的移动用户体验与服务facebo.pptx

    2. **移动特定的个人资料**:使用XHTML内容和部分FBML(Facebook标记语言),包含到应用画布页面的链接,并自动归属到m.facebook.com域名下。开发者可以通过setFBML API调用的updated参数来设置个人资料的标记。 3....

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

    这部分内容涵盖了Emacs的核心设计原理、插件系统的实现方式等内容,对于理解和开发Emacs插件非常有帮助。 - **11.3 滋长的特性**:探讨了Emacs如何通过不断增加新特性来满足用户的多样化需求。这种特性增长的方式...

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

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

Global site tag (gtag.js) - Google Analytics