7
私はこのスクリプトを使用して、特定のページからのイベントをループしていました。突然、私はそれがもう動作しないことがわかります:(Facebook graph API loop through paging
私はそれがバグかもしれないという気持ちがあります。なぜなら、あなたがページを選んだら、access_tokenでイベントを見ると、 "次へ「ページ分割URL。例えば任意のアイデア?
($ FIDは、ページオブジェクトIDです)
try {
$facebook = new Facebook(array(
'appId' => '<removed>',
'secret' => '<removed>',
));
$access_token = $facebook->getAccessToken();
$events_data = array();
$offset = 0;
$limit = 5000;
$params = array('access_token' => $access_token);
//fetch events from Facebook API
$data = $facebook->api("$fid/events/?limit=$limit&offset=$offset", $params);
$events_data = array_merge($events_data, $data["data"]);
//loop through pages to return all results
while(in_array("paging", $data) && array_key_exists("next", $data["paging"])) {
$offset += $limit;
$data = $facebook->api("$fid/events/?limit=$limit&offset=$offset", $params);
$events_data = array_merge($events_data, $data["data"]);
}}
Heh、私はちょうど同じ問題を探していました。これを見つけて、「うわー、これはまさに私が後にしていることだ」と思った。ちょっと上にスクロールしてOPを見て、 "うーん、私は前にこのコードを見たと思う"と、ユーザー名 "huh"を見ます。あなたの答えは、1年前にそれをマーキングしていないことについての謝罪です。 –
このようにオフセットを設定する必要はありません:$ offset + = count($ data ["data"])返される実際のアイテムは$ limit未満ですか?この場合、私はFBがすべての呼び出しで5,000アイテムを返すとは思わない。 – rbp