2011-03-24 288 views
8

我正在做一些基準測試,在我的web應用程序中發現Facebooks API的響應速度比Twitters慢很多。Facebook API響應速度很慢(oAuth)

**爲了記錄在案,我現在用的是twitter-async庫Twitter的API集成和Facebook的自己的圖書館here

隨着Twitter的圖書館中,我可以節省OAuth憑證&祕密,然後我用這些來創建一個實例並打電話,很簡單。對於Facebook,除非我要求offline_permission,否則每次用戶登錄到我的應用程序時,我都必須存儲oAuth代碼並重新創建oAuth訪問令牌。

鑑於上述我可以:

0.02秒檢索Twitter用戶的時間表。

得到一個FB OAuth訪問代碼在1.16秒,那麼我可以得到2.31秒的用戶的詳細信息,共計3.47秒,以獲得用戶的詳細信息。

這些統計數據來自Facebook使用的功能,提供在他們的PHP API庫中。我也嘗試實現我自己的CURL函數,通過請求獲取這些信息,結果並不好。

這與其他人使用Facebook API時的反應時間相同嗎?

除了要求脫機許可和存儲永久訪問令牌之外,我還能如何加速這些請求,這是我的問題或Facebook上的問題嗎?

感謝,

克里斯

+0

歡迎來到爲Facebook開發的樂趣。 :-) – ceejayoz 2011-03-24 13:35:58

回答

7

我也有經驗了Facebook API是相當緩慢。我相信facebook的PHP API並不僅僅是在API調用的情況下繞過CURL,所以這並不能提高速度。

我在一個畫布頁面上工作,這意味着對於現有的用戶,當他/她進來時,我得到一個訪問令牌和fb_UID。起初,我做了一個/我的圖形調用,有時還有一個/我/朋友。第一個需要0.6秒,第二個通常多一點。所以在這種情況下,我可以(在某種程度上)確認你的發現。

這就是爲什麼我現在切換到本地存儲重要的東西,並只在需要時更新它(實時更新API)。基本上,在「正常」操作期間我不需要任何API調用。

我意識到你可能在你自己的頁面上集成了FB,並且可能使用一些信息而不僅僅是名字,而且這個解決方案並不完全回答你的問題。但也許它仍然可以作爲一小塊拼圖);

我期待着對此的其他觀點!

0

我的應用程序從Facebook調用多個URL。這需要一些時間:/ 這就是爲什麼我決定編寫一個函數,它將結果存儲在$ _SESSION中,以便稍後再使用它,並附帶一個時間戳以查看數據是否過舊。

這並不能解決實際問題,它只是節省了你不得不繼續提取它。

我喜歡爲最終用戶體驗做的事情,是將它們轉發到加載.gif頁面 - 然後讓javascript請求實際提取數據的頁面。這樣,用戶就可以在一個裝載頁面上看到一個漂亮的gif,直到下一頁準備就緒。