OpenSocial 是 一組用於創建在網絡上運行的社交應用程序。OpenSocial 的 目標是:通過提供一個可在許多不同的環境中使用的通用API ,讓 更多的應用程序可以被更多的用戶訪問。開發人員可以使用標準的javascript 和html 創建應用程序,這些應用程序可在已應用的OpenSocial 的社交網站上運行。
-
OpenSocial
整
體上一般由下面的幾個部分組成:
-
OpenSocial 容 器
提交OpenSocial API 服務的網站稱之爲OpenSocial 窗 口,它暴露OpenSocial API ,這些API 包括js 及rest 等風格的調用服務。
-
Gadget 容 器
social app 一般是通過open social 中的gadget 規範提供的xml 文件完成編寫的,xml 文件中可以定義展示的html 及javascript 執行代碼,這些xml 文件由gadget 容器來完成解析,並轉化爲html 頁面以呈現給用戶。支持open social 的社交網站提供這個容器,開發人員將開發的OpenSocial app(xml) 提交給容器,由容器實現將OpenSocial 應 用提供給用戶使用。
-
OpenSocial app
指由第三方開發人員開發的社交應用,應用一 般由xml 文件組成。它們通過javascript 調用OpenSocial 提供的標準通用API 來和社交網站進行交互。由xml 文件組成的OpenSocial 應用如果要和第三方網站進行通訊一般也只能通過javascript 的ajax 調用來完成。它運行於社交網站提供的Gadget Container 中。
另一種類型的OpenSocial 應用是通過rest 接口和社交網站進行通過,以完成和社交網站的交互。OpenSocial 應用運行於自己獨立的服務器上,可以採用各種編程語 言。
-
-
OpenSocial
開放的數據
OpenSocial 提 供了標準通用的javascript api 及rest/rpc 等接口來支持小應用和容器的交互能力。通過這些標準的javascript api 及rest api ,小應用可以讀取社交網站提供的下面各類數據:
-
People:
People提 供對用戶信息的訪問接口,它包含了用戶的基本信息或其他一擴展的信息。如People對 應的人的姓名、郵件、興趣愛好及他所擁用的物品等信息。
-
關係
關係數據提供了一個人和其他人的關係的數據接口。關係接口並不侷限於查看自己的 好友關係,也可以查看其他人的一些好友關係。
-
動態
提供查找一個人的活動記錄。這些活動可以包含容器自身的交互,這些活動可以包含 容器自身的交互(例如,更新您的個人資料或安裝新的小工具),也可以包含與 OpenSocial 應用程序的交互(例如,爲您的好友發送虛擬禮物或在遊戲中創造新的高分)。
-
持久化存儲
一些第三方開發的小應用需要將用戶和應用交互的信息保存下來,以便下次使用來提 高用戶體驗。OpenSocial 容器提供數據保存及查詢能力, 以增強應用的定製能力。
-
-
OpenSocial 的 優點
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->-
OpenSocial 是 開放的,並由幾大互聯巨頭支持,因此在技術及開發支持上都有着強大的後盾。對於開發人員來說將會有更多的文檔及相關的技術人員支撐降低開發上的成本和難 度。
-
由於對社交網絡數據並互接口的標準化,使第三方開發的小應用在開發後,經過少量 的改動,甚至於不用任何變動即可部署到不同的社交網站中。
-
小應用是由html 及javascript 編寫而成,因此會使應用的hosting 會非常的容易方便,只要將編寫的xml 上傳到一個互聯網能訪問的一個url 上即可,且對服務器沒啥特別的要求。
-
對於社交網站,支持OpenSocial 標準,使網站支持第三方的小應用更爲簡單。通過提供的 容器,可以很方便的將支持OpenSocial 標準的小應用引入 到自己的網站中,而且這樣的小應用資源也將會越來越豐富。
-
可以通過簡單的html 及javascript 來實現邏輯較爲簡單的小應用。也可以通過REST 接口來實現運行於自己服務器的較爲複雜的小應用。
-
由於容器提供了用戶身份的認證方法及相關的開發API ,使開發者更容易開發基於OpenSocial 的應用,也使社交網站更容易開放自身的API 。
-
-
OpenSocial 的 缺點:
-
安全性不知道算不算一個缺點了,由於關於opensocial 的安全性資料也比較少,很難作出一個斷定。但由於調用 接口是javascript ,從目前撐握的情況來看。實現安全性 主要是靠簽名的方式,實現單一,難以找到更的好方法。
-
雖然社交網站都號稱支持OpenSocial ,但出於各種考慮,大多數都只支持了其中的部分功能及 數據,這方面包括數據的開改性,功能的實現等。
-
OpenSocial 的 標準成熟度應該來說還是不夠的,版本的升級一般會伴隨着較多的接口變動,使支持OpenSocial 在 支持新標準時往往需要做更多的事情,這也導致了各網站對標準的支持往往不一樣,使小應用爲了適應在各網站上運行而需要做更多的事情。
-
對於想支持OpenSocial 的社交網站來說,目前成熟的OpenSocail 容器也沒有,開源的shindig 還處於開發版中,在穩定性及性能上都有待驗證。同時它的相關 文檔基本上沒有,如果使用則要靠閱讀代碼的方式,使開發的難度增加。同時如果完全由自己來編寫容器,我想花的成本會更大。
-
-
一個想支持OpenSocial 的網站應該需要做些什麼?
-
需要充分理解和熟悉OpenSocial 規範及它的更深層含義。
-
確定數據的開放性。標準裏規定的哪些數據對象及每個數據對象裏的哪些屬性可以提 供給開發者。
-
編寫OpenSocial 容 器,或者使用現成的OpenSocial 容器,目前我只發現一個 還不太成熟的Shindig 。
-
實現OpenSocial 容 器裏的SPI ,集成網站和OpenSocial 容器,以便提供OpenSocial 服務。
-
考慮第三方應用如何和網站進行集成。
-