2011年2月10日星期四

Facebook開發工具比較(for .Net)

 
Facebook開發工具比較(for .Net)
 
臉書整合服務寫於 2010年12月28日 6:53
 
Facebook官方提供的Api SDK,如果依程式語言來區分的話一共有以下幾種:
 
  • JavaScript SDK
  • PHP SDK
  • Python SDK
  • iOS SDK for iPhone, iPod touch, and iPad
  • Android SDK 
 
明 顯地,Facebook官方並沒有提供 for .Net的SDK,所以如果要使用.Net來開發Facebook的應用服務的話,就必須再借助第三方廠商所開發的SDK工具。我沒有實際去找出目前網路 上所有 for .Net的SDK,但就我爬文的結果,被使用最廣泛的主要有三套,如下:
 
 
 
(1) Facebook Developer Toolkit
 
(2) csharp-sdk
 
(3) Facebook C# SDK
 
 
 
來跟大家分享一下我比較的一些結果。
 
 
 
Facebook Developer Toolkit 
 
‧下載的網址:http://facebooktoolkit.codeplex.com/  (for .Net 2.0版本)
 
是 微軟官方所出版的Facebook for .Net SDK,沒錯!就是微軟官方所出的。一開始我看到好像找到寶一樣的開心,文件和範例都蠻齊全的。但是,我再詳細看這個SDK的支援還有最新更新的日期,才 發現它不支援Facebook新版的Graph API,也就是不支援OAuth 2.0 規格的登入授權方式。
 
舊版的 Facebook API登入是使用session_key以及動態的secret,新版的 Facebook API登入則是使用access_token(請參考:i am Jason: Facebook Open Graph的登入授權方式)。雖然現在Facebook API新舊並存,如果是用舊版的Api寫的程是目前都還可以跑,但不曉得哪Facebook要給它停掉,所以還是決定不採用。而且, 後來微軟官方自己也都沒有再更新這個套件了,我再去看這個工具的討論版,蠻多抱怨的文章 ,所以...
 
 
 
csharp-sdk
 
 
for .Net 4.0版本,而且要用Visual Studio 2010才能開啟專案檔,記得!還要自己將套件編譯過才能使用(給的很沒誠意!) 
 
本套件是Facebook官方開發人員所釋出的 for .Net SDK,但是從2010年7月17日公開到現在,一直都在Alpha版,沒錯!好像都沒再更新了。所以, Facebook也沒有將這個工具放在官方正式SDK清單裡面。
 
我看了[after dusk, before dawn]部落格針對該套件寫了幾篇文章,寫的很不錯,有興趣研究的可以連到[after dusk, before dawn: [Facebook] 臉書的C Sharp SDK]研究。
 
我 自己使用的感覺, csharp-sdk將比較繁瑣的Facebook訊息傳遞包裝成簡單的方法,並且提供便利的Jason物件解析方式(Facebook很多都是利用 Jason傳遞資料),基本上是一個麻雀雖小五臟俱全的工具。如果你要比較複雜的功能,或是後來Facebook又釋出的新功能,這個工具可能就達不到, 而要自己再開發。
 
Facebook使用者登入授權的方式主要有兩種,官方說明,一種是利用網頁傳地參數的方式,另一種是利用JS SDK取得Cookie來認證 ,csharp-sdk基本上是使用第一種方式,
 
利用網頁傳地參數的方式會有一些不便之處,後續再分享我的解決方式。
 
 
 
Facebook C# SDK
 
 ‧下載的網址:http://facebooksdk.codeplex.com/
 
for .Net 3.5 & 4.0版本,而且要用Visual Studio 2010才能開啟專案檔。一開始我以為是微軟官方的Facebook for .Net SDK,結果錯!不是微軟官方所出的,是另外的團隊所開發的,我看到的更新版本日期是
 
 
 
Current 4.1.0
 
Date    Fri Dec 17 2010 at 4:00 PM
 
 
 
真是好開心!有再更新耶~(標準越來越低了,有更新就好~),連微軟官方都公開直接支持這個 SDK(這是微軟的風格嗎?) ,範例也都有了,而且相當的齊全,連 Api文件都有了耶~佛心來著~
 
 
 
範例
 
 
 
馬上來測試看看,我是測試CSASPNETFacebookApp專案,但照上面的步驟來編譯,一直會出現Facebook授權失敗的錯誤訊息,我到專案的討論區上,也看到不少人有跟我同樣的問題,現在只能期待這個問題在下一個版本可以被修正。
 
 
 
【後續建議】
 
如果你的專案不大,我直接推薦csharp-sdk,快速上手又輕巧。
 
基本上我是蠻期待Facebook C# SDK這一套的工具的,但是Facebook常常在變動規則,要一直跟著 Facebook的隨興,又不會給搞死的第三方SDK套件,真的必須俱備有兩把刷子!
 
連微軟都索性不再更新官方的Facebook for .Net SDK了。Facebook C# SDK,加油! 
 
 
 
Best Regards
Miao