由於您試圖訪問的數據,Facebook的API可能有點奇怪,並且這個問題有幾個部分。
限制
返回數據時,限制應用,但權限和訪問控制生成,這與去年的這篇博客文章解釋過:Limits in the Graph API。
權限
更重要的是,即使你給自己的每FB權限可能一個道理,你仍然無法訪問您所創建的一切。假設您在某個朋友的Feed上發佈了某些內容,但其Feed未設置爲公開隱私。使用您的令牌對該朋友的訂閱源進行的任何查詢都不會返回數據(或者至少在一年前就是如此)。
API本身
其中最真棒的錯誤我圖形API中發現,當我使用它去年是處理分頁的方式。圖形API允許使用三種過濾器:限制,偏移和自/直到。 Facebook推薦的地方(以及正確的做法)您可以儘可能使用since/until日期進行分頁。忽略辯論,爲什麼你會做一個理論基礎上對偏移,在實際的一慣隨時間退化以下查詢:
// This obviously isn't valid as written, but you the params change as described
limit=fixed-value&offset=programmatic-increase&since=some-fixed-date-here
原因:日期範圍和偏移,不守規矩彼此。作爲一個例子,說我做了以下初始查詢:
// My example query
limit=20&since=1334555920
--> {#1,#2, ... #20}
當然,你會想頁面更多的數據。其結果將是這樣的(我不記得確切的格局,但上方n
將是重複和結果名單將通過n/2
或類似的東西被截斷):
// My example query
limit=20&since=1334555920&offset=20
---> {#10, #11 ... #25}
我從來沒有想通了爲什麼會發生這種情況,但最終查詢會逐漸減少,不會返回任何結果,並且只能獲得50-100個獨特值。如果您僅使用日期進行分頁,只要數據允許,您可以繼續。
這是與此警告,這是一個錯誤,這是從前一陣子。這裏的主要教訓是,如果不修改我的查詢來使事情完全相同(特定的日期範圍基於帖子#10-30,而限制= 20,偏移量= 10),我永遠不會發現此錯誤,但是結果非常不同。