2012-05-02 25 views
8

我有一個關於Facebook限制你的API呼叫的方式的問題。Facebook的5000郵政API限制

實現這一文章的底部:http://developers.facebook.com/blog/post/478/ Facebook表示:

除了對上面列出的每個表和連接的文檔中提到的限制,它是有幫助的知道的最大數目結果我們將在運行之前提取可見性檢查爲5,000。

我想知道如何通過這樣的公共數據頁面。例如,採取夏奇拉:她就要她上傳的每張照片很多很多的喜歡,這個API調用:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=0&__after_id=100002349968919

結束了在5000個喜歡停止。

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=5000&__after_id=100000881924617

一個有趣的一點是,這個數據是所有市民,我不必登錄到Facebook上看到它。我知道有關於的隱私政策如何您使用的數據,這不是我的問題。如果數據是公開的,這些數據是什麼,爲什麼我們無法全部獲得,如果可以的話,如何?

的主要問題是:

  1. 你能得到5000個結果爲特定的API調用,如上面的一個?

  2. 它是最近5000個喜歡嗎?因此,如果您立即開始在這篇文章中收集數據,然後每隔10分鐘左右返回一次以尋找新喜歡,那麼您是否能夠通過這種防止5000限制的方法獲取所有數據?

  3. 它是API調用的限制,還是僅限於發送給一個用戶的結果數量,還是他們爲特定帖子發送的結果數量等?

  4. 這是否適用於帖子,標記和評論和分頁?

我知道這個問題有點開放,但我已經找遍了各地的答案,它沒有很好的記錄。任何幫助都會很棒,我想很多人將來可能會參考這些信息。

UPDATE:

運行此API調用時:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=4964&__after_id=100000881924617

你回來一個結果,從而達到最大極限(以及至少接近)。有人建議使用FQL,可能會返回更多。但我嘗試在PHP中使用FQL做同樣的事情,並且只返回1條記錄。

$select = urlencode("SELECT user_id, object_id, post_id FROM like WHERE post_id='5027904559_10150854808869560' LIMIT 1000 OFFSET 4964"); 
     $fql_query_url = 'https://graph.facebook.com/fql?q=' . $select; 
     $fql_query_result = file_get_contents($fql_query_url); 
     $fql_query_obj = json_decode($fql_query_result, true); 

所以,到目前爲止,唯一的答案是「不」,你總是有限的,以5000分的結果。我不認爲/知道具有某些特定權限的特定access_token是否有幫助。

再一次更新,當我去夏奇拉的頁面並點擊'x這樣的人數'並開始向下滾動列表時,我也達到了極限。因此,Facebook不僅限制了API和FQL的回報,而且限制了他們自己的頁面。

我想查看是否有人知道爲什麼?他們一次只有5K緩存,如果有人要求這麼多的請求,他們將無法處理這個規模?只是一個猜測。

+0

即使數據公開可用,我也很驚訝,說實話。至少我希望這隻適用於註冊的應用程序開發人員,即使這樣,只有當用戶的隱私首選項設置爲允許該特定開發人員使用時。 – halfer

+0

是的,不是每個人的數據都是公開的,但粉絲頁面確實有一些公開的數據。像夏奇拉。 – chantheman

+0

嗨@chantheman,你解決這個/找到一種替代方法? –

回答

4

不幸的是,沒有辦法獲得超過5000個物體。

除非如您所說,您從小於5000的時間開始維護它,並將它們存儲起來。 :)

它可能會也可能不會是故意的(也許他們試圖讓舊消息死掉,而不是很容易找到),或者它可能與您在Facebook上允許的朋友數量一致,爲5000.

+0

感謝您的回答。只是爲了澄清一下,當夏奇拉在一張照片上有40萬人喜歡時,我只能得到最新的5000張。我不能使用偏移量以某種方式返回5k(我嘗試過這種方法,但無法使用它)?如果我擁有頁面管理員的某些特定權限,該怎麼辦?我能獲得更多嗎? – chantheman

+0

不可以。Facebook與許多網站一樣,並非由它自己的API構建,這導致了類似的問題。但是,如果你真的需要所有400,000個喜歡,你可以刮頁面。正如我所說,這可能是一個有意的限制。 – DanRedux

+0

這很有趣。似乎限制了很多應用程序的開發。我感興趣的是看看有沒有人可以解決這個問題,但我只看到兩個解決方案:1.像你說的那樣建立一個刮板/爬行器,或者2.一直收集數據並存儲最後收集的數據,這樣你就可以每次收集時都從那裏開始。我想看看是否有其他人有這個問題。再次感謝您的信息。 – chantheman