2015-10-11 206 views
1

我試圖從許多公共Facebook頁面中獲取所有文章。下面的結合一些分頁這樣做,但它很慢,因爲需要單獨的調用遍歷每個帖子的頁面(然後評論,然後回覆,如果這些都包括在內)。Facebook Graph API批處理 - 迭代分頁

curl -X GET "https://graph.facebook.com/FacebookDevelopers/feed?fields=id&access_token="$TOKEN 

據我好像在batch endpoint Facebook的API文檔中找到的是爲了這個美好的,但我有麻煩的帖子的所有頁面。

以下是初始請求並遍歷一個頁面(即總共返回2頁),但我無法獲得2頁以上的內容。

curl \ 
-F 'access_token='$TOKEN \ 
-F 'batch=[{ "method":"GET","name":"getfeed","omit_response_on_success":false,"relative_url":"FacebookDevelopers/feed?fields=id"}, 
      { "method":"GET","omit_response_on_success":false,"relative_url":"FacebookDevelopers/feed?fields=id&after={result=getfeed:$.paging.cursors.after}"}]' \ 
https://graph.facebook.com 

有沒有辦法從使用批處理端點的公共頁面獲取所有帖子?

+0

你需要什麼「所有職位」?如果頁面足夠陳舊並經常發佈,可能會出現數千甚至5或6位數字......沒有合理的方法通過API獲取所有數據。無論如何,API主要面向與「近期」數據合作,而不是提供一個「歷史」一直回到最初。 – CBroe

回答

1

對於每個尋呼請求,您將光標參數(用於調用after)。您只能將批量調用「嵌套」到一個深度級別,因此您確實只能同時請求兩個頁面。

除了技術限制,還請注意,scraping is not allowed並且有request throttling limits