【筆記】Facebook的開放API架構


  當用戶想在其他應用中訪問Facebook的相關數據時,面臨着數據的隱私與安全性、對Facebook本身性能的影響、數據同步等問題。

  其解決方案如下:

  1. 將數據功能從facebook內部移到對外開放的web service上,授權訪問這個web service,保持數據的安全性與隱私性。

  在Facebook API中,用戶通過一個已知的api_key重定向到Facebook登錄界面,用戶在Facebook上輸入九零,對這個應用授權。然后,用戶帶着會話鍵和用戶ID重定向到已知的應用。此時,應用便獲得了授權,可以代表用戶調用API方法。

  2. 創建一種新的數據查詢語言(Facebook FQL),減輕因為引入新的web服務客戶端對Facebook本身帶來的額外負擔。

  FQL類似於SQL,它將Facebook的內部數據轉換為table和fields,而不是傳統WS返回的XML schema,從而,外部應用開發者可以像使用SQL一樣查詢Facebook內部數據。

  3. 創建一種新的數據驅動的標記語言(Facebook FBML),將外部應用對數據的變更集成回Facebook。

  當遇到不僅僅需要數據層面的交互,還要集成UI層面等需要更深層次的集成的情況時,Facebook應用開發者通過一種數據驅動的標記語言FBML(Facebook Markup Language),在應用中創建應用執行和顯示的內容,並與Facebook交互。在這種方案下,外部應用發給Facebook的不是html代碼,而是一種特定的標記語言,其中定義了足夠的標記來表現其邏輯和顯示,也包含了對Facebook受保護數據的請求,完全讓Facebook在受信任的服務環境中處理並顯示它。

  這樣的新型數據服務不一定局限於社會關系信息。隨着用戶貢獻和使用的信息越來越多,這些信息在許多容器站點上都很有用(如內容收集、評論、位置信息、個人計划、協作等數據),各式各樣的平台提供者可以應用Facebook平台持有的數據和Web架構背后的這些思想,並從中獲益。

參考資料:《架構之美》第6章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM