在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的服務器。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
