2012-06-28 62 views
3

我的目標是開發iPhone應用程序,該應用程序可用於查看部分由來自手機所有者的Facebook朋友的數據(狀態,照片,視頻)組成的內容。在服務器端獲取Facebook內容

換句話說,iPhone應用程序應該與一些生成內容的後端服務器交互,而這個後端應該從Facebook獲取數據。 目前我正在考慮在後端使用Django。

我以前沒有使用過任何社交api,我有一種直覺認爲在這個方案中auth可能會導致一些問題,主要是因爲我有用戶,應該在設備端和實際內容上輸入登錄/傳遞在服務器端獲取(來自用戶的fb朋友)。

什麼可以幫助我實現這樣的計劃? fb api是否提供了類似的東西?

請注意,這不是一個Web項目,我有本機iPhone應用程序。

回答

1

這是完全可行的,它只是取決於你在實現auth結構時,理解所有授予facebook應用程序權限的操作都需要執行重定向。這可能涉及到在應用程序外部打開瀏覽器,或者您可以使用IPhone SDK僅用於身份驗證,並在OAuth進程完成後將客戶端設備的access_token發送到服務器。

對於希望與Facebook/Twitter/Google +其他OAuth提供商一起設置自己的認證系統的應用程序,這是一種非常常見的方法。您維護與某些Facebook用戶關聯的本地用戶標識並在必要時獲取訪問標識。獲取永久離線訪問的過程已從持續令牌更改爲您刷新的過程。我會參考你擁有所有的相關細節另一個討論:

What field type to store the facebook token?

一旦獲得並保存有效的access_token,無論是在永久存儲或會話,你可以用它來訪問客戶端SDK用來獲取和交換數據的相同端點。這通常用一些HTTP庫來完成。例如,PHP的SDK只是通過自動執行認證過程,然後將訪問憑證嵌入到請求數據中,從瀏覽器窗口內加速此過程。這可以在服務器端通過使用帶有標準HTTP庫(urllib或python中的HTTPlib)的endpt來完全模擬,並手動將新獲得的access_token設置爲請求變量,以便將其發送到圖形API。

如果您要使用python路由,並且您的客戶端需求將通過電話完全處理,那麼我強烈建議您查看Flask,它是Werkzeug WSGI庫的變體。這個工具實際上不能被打敗,因爲它能夠快速轉換出一些序列化的數據(在你的情況下,很可能直接來自FB)。我一直很喜歡它的Web服務類型的工作,因爲它讓你決定使用哪些庫來滿足其他需求,從而使部署的代碼庫儘可能小。

相關問題