facebook架构:基于Facebook和Flash平台的应用架构解析( 3)

  独立Flash Facebook站点应用

  图5描绘了独立Flash Facebook站点应用架构其主要区别是Facebook服务器不再代为处理全部浏览器请求另外现在你还必须在客户端代码中用Facebook API 或 Facebook Connect处理用户登录如果使用Facebook API处理登录用户需在新浏览器窗口中登录Facebook并返回到你应用中为了避免在Facebook站点登录为用户提供更无缝登录体验你可以使用Facebook Connect

基于Facebook和Flash平台<img src='/icons/43936de.gif' />应用架构解析( 3)

  图5 独立Flash Facebook站点应用

  当用户在你站点上访问应用时浏览器向你服务器发送HTTP请求——请求个HTML或任何服务端页面

  服务器返回包含了对你SWF文件引用HTML/JS页面如果使用Facebook Connect该HTML页面会包括部分用于化Facebook ConnectJavaScript代码(介绍说明)

  用户浏览器向你服务器请求内嵌在HTML页面中SWF文件

  你服务器返回SWF文件

  SWF 文件中ActionScript 代码直接异步请求Facebook服务器——思路方法是使用官方提供ActionScript 3.0 Library for Facebook Platform你每次可以提交单独也可以提交成批在这种情况下最初对Facebook服务器必须获得授权;旦用户成功登录 (最好使用Facebook Connect)得到了Session Key那么后续所有Facebook API所需签名就会由ActionScript 3.0 Library for Facebook Platform类生成当然Facebook必须通过跨域策略文件开放了访问权限且API中传送了所需参数有关此问题更多信息请参看前 面在Flash iFrame应用部分讨论

  Facebook服务器向你Flash应用返回XML或JSON格式数据并由你应用处理这些数据

  若 需实现任何服务端处理功能(如在你服务器上保存某些数据)可在ActionScript代码中通过远程过程思路方法实现(可以是 HTTP、Web Service和Flash Remoting)其中最便捷思路方法当属Flash Remoting——它通过开源 2进制Action Message Format(AMF)实现服务器和Flash Player间数据交换

  若有必要服务器可和Facebook服务器进行其他通讯

  你服务器处理Facebook服务器返回结果数据

  你服务器将数据返回给用户浏览器中Flash应用图5中我们利用Flash Remoting和AMF交换数据当然你也可用Web Service、SOAP、HTTP实现文本或XML格式数据交换

  Flash Facebook桌面应用

  最后让我们来讨论Flash Facebook桌面应用架构基于Flash平台桌面应用就是AIR应用(这个地方请再斟酌下)有关构建AIR应用更多信息请参阅AIR文档和AIR开发者中心Flash Facebook桌面应用(如图6)架构和前面讨论过独立Flash Facebook站点应用非常类似区别是此时不需要浏览器SWF文件也存在于安装了AIR应用用户本地计算机上

基于Facebook和Flash平台<img src='/icons/43936de.gif' />应用架构解析( 3)

  图6 Flash Facebook桌面应用

  用户安装并运行AIR桌面

  SWF文件中ActionScript 代码直接异步请求Facebook服务器——思路方法是使用宿主在Google代码上 官方提供ActionScript 3.0 Library for Facebook Platform你每次可以提交单独也可以提交成批在这种情况下最初对Facebook服务器必须获得授权;旦用户成功登录 (最好使用Facebook Connect)得到了Session Key那么后续所有Facebook API所需签名就会由ActionScript 3.0 Library for Facebook Platform类生成当然Facebook必须通过跨域策略文件开放了访问权限且API中传送了所需参数有关此问题更多信息请参看前 面在Flash iFrame应用部分讨论

  Facebook服务器向你Flash应用返回XML或JSON格式数据并由你应用处理这些数据

  若 需实现任何形式服务端处理功能(如在你服务器上保存某些数据)可在ActionScript代码中通过远程过程思路方法实现 (可以是HTTP、Web Service和Flash Remoting)其中最便捷思路方法当属Flash Remoting——它通过开源 2进制Action Message Format (AMF)实现服务器和Flash Player间数据交换

  若有必要服务器可和Facebook服务器进行其他通讯

  你服务器处理Facebook服务器返回结果数据

  你服务器将结果数据返回给Flash桌面图6中利用Flash Remoting和AMF交换数据当然你也可用Web Service、SOAP、HTTP实现文本或XML格式数据交换

  整理总结和引申

  本系列文章介绍了 3类基于Flash和Facebook平台应用:基于Facebook嵌入式应用、Web站点式独立应用和桌面应用对于任何Facebook应用你都可将Flash包纳在iFrame或FBML应用中具体来说从架构和处理流程角度可分为 6种子类型?(本文架构图和流程处理适用于):基于Facebook非FlashiFrame/FBML应用基于FacebookFlash iFrame/FBML应用以及Flash站点应用、Flash桌面应用 有关iFrame和FBML应用区别更多信息请参考iFrame、FBML Flash Facebook应用比较有关构架基于FacebookFlash应用详细步骤请观看快速构建Facebook应用视频或阅读利用Flexible构建Facebook应用快速入门



  作者介绍

  Jeanette Stallons:Flex独立培训师、顾问她为包括Adobe、Oracle、Boeing、Wachovia、Morgan Stanley和Charles Schwab在内很多公司讲过课在此的前她分别在Allaire、Macromedia和Adobe工作过具体参和过工作包括培训、架构设计、 写作以及Flash、Flex等应用以及其他产品开发她最新参和项目是AdobeFlex Learning Paths在这个项目中她担任同时也是内容专家

  阅读英文原文:Understanding the architecture of applications built on the Facebook and Flash Platforms



Tags:  facebook.com facebook facebook开放平台 facebook架构

延伸阅读

最新评论

发表评论