2011-10-26 67 views
7

我決定使用facebook和django編寫一些應用程序(甚至是扭曲的,但沒關係),現在我無法選擇合適的工具。我看到有所著的Python中的許多API-包裝存在的Facebook:用於集成Django和Facebook的Python庫

我在這裏看到了somesimilar問題,但我注意到Facebook會定期在其API中引入重大變化,這些建議可能已經過時,或者可能會出現新庫。 另外我想知道這些庫之間最重要的差異。當然,歡迎提供良好的文檔和教程。

回答

9

我認爲Django的Facebook是你不錯的選擇。但我的看法是有偏見的。我爲我的創業公司Fashiolista.com編寫了它,並在生產中運行它。(相當龐大,所以最邊緣的情況已經解決)

Django Facebook還包括OpenFacebook,這是一個開放圖協議的python api客戶端。它是我知道的唯一完全處於最新狀態並積極維護的python客戶端。

看一看: https://github.com/tschellenbach/Django-facebook

PS。 剛剛發佈了一些新的裝飾器,使它開始非常簡單。這些裝飾器確實是非常新的,並在過去幾天造成一些錯誤。該項目本身已經有一年了(自從開放圖API發佈以來),否則就非常穩定。 http://www.mellowmorning.com/

+0

Thierry,django-facebook允許(或提供方法)將常規Django站點與Facebook集成嗎?我的意思是說,使用* not * canvas應用程序,但是在普通站點Django帳戶鏈接到FB帳戶,例如可以從常規的Django應用程序發佈到他的牆上。 – AlexA

4

答案真的取決於你想達到什麼,因爲這些API差別很大。

  • pyfacebook - 適用於較舊的舊式API。

  • python-sdk - 適用於「新」opengraph協議(我不會說它不再支持它只是一個簡單的包裝在facebook的opengraph協議,所以支持所有的新功能,即時提供的facebook即時無需要在lib上開發工作)。

  • django-facebook - 比python-sdk更高級別,可以幫助您將facebook連接功能添加到您的網站,並且似乎爲創建活在「內部」facebook中的應用程序鋪平道路,而不僅僅是幫助生活在外部的網站Facebook可以訪問Facebook數據。

  • 從來沒有聽說過fandjango和github目前似乎正在關閉,所以無法對此發表評論。

如果您只是想使用Facebook添加用戶登錄,那麼像django-socialauth這樣的東西可能會爲您工作。

如果你想開始探索社交圖譜,那麼python-sdk是最好的選擇。

我也想看看你想要的功能是否被opengraph協議支持,它在去年有所改進,但它有令人沮喪的不支持的奇怪的事情,而傳統的API支持...

最好documentation就是Facebook本身,檢查出graph-explorer - 這是相當令人着迷......

+1

我在看python-sdk,它似乎是一個JavaScript SDK上的包裝。 Facebook希望我們現在總是使用JavaScript API嗎? FB的文檔建議你仍然可以做服務器端身份驗證,但遵循他們的指示[不適用於我](http://stackoverflow.com/questions/8001628/cant-oauth-with-facebook-what-are-我-下的調試步驟)。 – ObscureRobot

+0

@ObscureRobot您可能想要將問題指定爲單獨的問題。我寫了一個我自己的Facebook API,它在服務器端工作。此外,調用Facebook Javascript SDK只是一個附加功能,有時可以讓事情變得更加輕鬆,而無需通過服務器端進行往返。對於任何即時查詢javascript SDK是一個更好的選擇。當你想緩存從facebook獲取的結果時,服務器端調用幫助。 – Divick

+0

@ DivKis01 - 這就是我所做的,這個單獨的問題與「不適合我」的單詞相關聯,完成了我上面的評論。原來問題是我的錯誤。 – ObscureRobot

1

這取決於你正在嘗試做什麼。我遇到了同樣的問題,並最終使用django-social-auth,它允許您通過Facebook和其他許多社交網絡登錄。它還可以讓您從這些網絡中提取令牌,然後使用它。

對於Facebook特定的東西,我使用facebook-sdk,但由於你有管理令牌的東西,如果你在未來幾年過時了,你可以用任何庫替換它。這也意味着您可以稍後添加更多社交網絡。