TShopping

 找回密碼
 註冊
搜索
查看: 2077|回復: 0

[教學] Facebook應用程式架構

[複製鏈接]
發表於 2013-1-22 23:13:26 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
每個Facebook應用程式必須有相同的基本架構,才能與Facebook開放平台互通。Facebook提供了『Facebook Developer』,這個網頁讓開發人員創造新的應用程式(但你必須先以Facebook帳號登入)。每個應用程式會有一些識別用的金鑰,開發人員必須輸入網址,用戶及Facebook才知道該如何存取應用程式。
雖然Facebook應用程式的網址都是http://apps.facebook.com/[your_name](此網址稱為畫布頁網址,也就是Canvas Page URL),但應用程式實際上並非位於Facebook的伺服器主機,而必須在你自己的伺服端執行,Facebook僅扮演代理者的角色;當用戶連到http://apps.facebook.com/[your_name],Facebook會呼叫位於你自己伺服端的應用程式的畫布回呼網址(Canvas Callback URL),並且建立IFrame,然後以IFrame顯示畫布回呼網址傳回的資訊。
因此當你開發Facebook應用程式之後,要利用Facebook Developer註冊你的應用程式,並登錄相關網址,包括畫布回呼網址,此外還要取得執行應用程式所需的金鑰。
秘密金鑰
利用Facebook Developer應用程式建立應用程式時,會得到一對公開金鑰和私密金鑰(private key)的組合。其中的公開金鑰稱為API金鑰,而私密金鑰稱為秘密金鑰(Secret key)。這組金鑰對會驗證所有的Facebook API呼叫都是來自擁有該組金鑰對的應用程式。重要的是,開發人員要保護他們的秘密金鑰,如果私密金鑰曾經外洩,就必須回報。否則任何應用程式都能冒充擁有該金鑰的應用程式進行Facebook的API呼叫,後果就是修改、甚至刪除用戶資料。
畫布頁網址
畫布頁網址是用戶連上Facebook進而執行應用程式的位置,其格式就是前述的http://apps.facebook.com/[your_name]。這個網址必須唯一,不能與任何應用程式重複;不像應用程式名稱不需唯一。如果有兩個應用程式的名稱都是SuperQuiz,但只會有一個的畫布頁網址是http://apps.facebook.com/superquiz,另一個應用程式就必須改用其他的網址,例如http://apps.facebook.com/superquiz-2
一般來說,名稱與其他應用程式相同並不妥當。在Facebook開放平台堆出之際,有許多「蟑螂」會搶著註冊常見的名稱,如同早期搶先註冊網域名稱。從那時以後,搶佔應用程式名稱的情況似乎較為平息,而應用程式名稱的可以重複,也降低了擁有特殊網址的價值。
畫布回呼網址
畫布回呼網址是應用程式位於你伺服器的所在。當Facebook需要顯示應用程式頁面、需要更新其快取,及用戶加入或移除應用程式的時候,Facebook就會呼叫這個網址。
放置畫布回呼網址的主機使用Web伺服器或開發人員認為適合的語言來處理此回呼,Facebook會以POST變數將一組資料傳給畫布回呼網址,包含用戶、階段、應用程式等相關資訊,而伺服器可自行處理這些資訊,或者使用其中一組API包裝函式函式庫來處理。
畫布頁執行流程
每當用戶連上應用程式的畫布頁,Facebook就會呼叫應用程式的畫布回呼網址,此時應用程式必須決定其畫布頁是FBML還是IFrame;這兩種都是Facebook應用程式類型。畫布頁是FBML或IFrame的最大差異,產生FBML的應用程式必須在顯示內容之前,先讓Facebook描繪(render)其內容,因此這可以讓Facebook將每個FBML控制項轉變成同等的HTML和JavaScript。IFrame畫布頁會直接顯示其內容,但無法使用FBML;不過它們能以Facebook JavaScript用戶端函式庫來呈現XFBML。

上圖是FBML畫布頁的執行流程,而下圖是IFrame應用程式畫布頁的執行流程,這些圖也說明了應用程式如何傳送內容,讓Facebook將內容顯示在用戶的個人檔案。



 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-3-29 09:09 , Processed in 0.143410 second(s), 23 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表