* FBML 使用FBML開發的Facebook應用程式,在Can vas Callback URL所指向的程式不能有<body>,<head>,<meta>,<script>,<link>…等等標籤在裡面, 也就是說你不能在裡面去引入外部的CSS,Javascript以及許多出神入化的Javascript Framework,像是jQuery與ExtJs等等. 使用FBML可以使用非常多Facebook內建的標籤去取用許多Facebook功能模組(ex:Social,Sanitization,Design,Component,Control…)以及敏銳的驗證機制 運作程序 1. 使用者發出對你的Canvas Page的Request. 2. Facebook Server根據你應用程式設定中的所指定的Callback URL, 發出HTTP POST到你的應用程式伺服器, POST的內容就是一堆以fb_sg為prefix的參數,細節請看應用程式的授權. 3. 假如你的應用程式沒有呼叫Facebook API的必要的話, 此時你的應用程式就會回傳FBML給Facebook. 反之如果你有需要透過Facebook API去取得一些FBML所無法取得的資料的話, 此時你的APP會發出Facebook API Request到Facebook Server 4. Facebook Server會根據API所請求的內容回傳相對應的Social Content到你的應用程式伺服器 5. 接收到Facebook Server回傳的資料後, 你的應用程式會將接收到的Social Content伴隨著FBML一起回傳到Facebook Server 6. Facebook在接收到FBML之後會透過FBML Parser將其轉換成一般的HTML並回傳到使用者的瀏覽器上去作頁面的呈現 大部分的狀況下, FBML就已經能提供足夠的Social Content去進行應用程式的運作, 所以步驟3與步驟4在採用FBML的應用程式上通常不會發生. * IFRAME 簡單說, 採用此種開發模式的Facebook App就是在Facebook的Canvas Page上Layout出一個傳統的IFRAME(官方文件說法是IFRAME會被包在Facebook Chrome之中), 而位於開發者主機上的程式或頁面就顯示於該IFRAME裡面, 在這個IFRAME妳可以任意的使用CSS,Javascript, 以及任何你愛用的Javascript Framework. Javascript除錯較為方便, 因為開發者可以利用許多工具像是Firebug來進行偵錯的動作. 較快的AJAX存取, 因為不用經過Facebook Proxy 用Firebug檢視位於Facebook Chrome中的IFRAME你會發現Facebook附加了很多資訊在你的Canvas Callback URL之後 http://www.mylover.hk/facebook/mylover-official.php?fb_sig_in_iframe=1&fb_sig_iframe_key=xxxxx&fb_sig_locale=en_US&fb_sig_in_new_facebook=1&fb_sig_time=1256090683.9768&fb_sig_added=0&fb_sig_api_key=xxxxx&fb_sig_app_id=xxxxx&fb_sig=xxxxx 這些附加在Canvas Callback URL之後的fb_sig系列參數是為了讓你的程式知道哪一位使用者登入了你的應用程式以及確認這項Request確實是來自Facebook. 除此之外, 附加的參數中也包含了你應用程式的API Key(fb_sig_api_key=xxxxx), 讓你可以呼叫Facebook API去取得使用者姓名, 朋友清單, 個人頭圖…等各項社交內容(Social Content). 運作程序 1. 使用者對Facebook Server發出App的請求 2. Facebook Server會剖析使用者Request的是那一個App, 然後回傳相對應的Facebook Chrome到使用者的瀏覽器上. 3. 使用者瀏覽器接收到回傳的Facebook Chrome之後, 會根據包在裡面的IFRAME去向你(應用程式開發者)的應用程式伺服器去取得IFRAME的內容. PS:如果你去檢視頁面原始碼就會看到Facebook Chrome就是如下方顯示的HTML <div id="app_content_{應用程式的APP ID}" class="canvas_rel_positioning app_content_{應用程式的APP ID}"> <iframe frameborder="0" class="smart_sizing_iframe" fbcontext="d878215e9e95" smartsize="true" src={應用程式設定中的Canvas Callback URL}?fb_sig_in_iframe=1&fb_sig_iframe_key=xxxxx&fb_sig_locale=en_US&fb_sig_in_new_facebook=1&fb_sig_time=1256090683.9768&fb_sig_added=0&fb_sig_api_key=xxxxx&fb_sig_app_id=xxxxx&fb_sig=xxxxx name="iframe_canvas" id="app{應用程式的APP ID}_iframe_canvas" style="width: 758px; height: 440px;"/> </div> 4. 在你的應用程式伺服器上, 應用程式會發出Facebook API的Request到Facebook伺服器去取得需要的資料. 5. Facebook Server會驗證API Request然後回傳API呼叫的資料到你的應用程式伺服器. 6. 將透過Facebook API取得的資料組成完整的HTML回傳到使用者的瀏覽器去進行呈現.
复制过来的。
非原创 原创转帖地址 /share/detail/15080223
Sharktech又称SK或者鲨鱼机房,是一家主打高防产品的国外商家,成立于2003年,提供的产品包括独立服务器租用、VPS云服务器等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等。之前我们经常分享商家提供的独立服务器产品,近期主机商针对云虚拟服务器(CVS)提供优惠码,优惠后XS套餐年付最低仅33.39美元起,支持使用支付宝、PayPal、信用卡等付款方式。下面以XS套餐为例,分享产品配...
EdgeNat 商家在之前也有分享过几次活动,主要提供香港和韩国的VPS主机,分别在沙田和首尔LG机房,服务器均为自营硬件,电信CN2线路,移动联通BGP直连,其中VPS主机基于KVM架构,宿主机采用四路E5处理器、raid10+BBU固态硬盘!最高可以提供500Gbps DDoS防御。这次开年活动中有提供七折优惠的韩国独立服务器,原生IP地址CN2线路。第一、优惠券活动EdgeNat优惠码(限月...
农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...