4
我試圖幾個請求改寫成一個批次的請求Facebook的批量要求
$posts = $facebook->api('/me/feed?limit=9999999');
for($i = 0; $i < count($posts['data']); $i++)
{
$comments = $facebook->api($posts['data'][$i]['id'].'/comments');
$likes = $facebook->api($posts['data'][$i]['id'].'/likes');
}
進入
$batch = array();
$req = array(
'method' => 'GET',
"name" => "prispevky",
'relative_url' => '/me/feed',
);
$batch[] = json_encode($req);
$req = array(
'method' => 'GET',
'relative_url' => '{result=prispevky:$.data.*.from.id}/comments'
);
$batch[] = json_encode($req);
$req = array(
'method' => 'GET',
'relative_url' => '{result=prispevky:$.data.*.id}/likes'
);
$batch[] = json_encode($req);
$params = array(
'batch' => '[' . implode(',',$batch) . ']'
);
try
{
$info = $facebook->api('/','POST',$params);
print_r($info);
}
catch(FacebookApiException $e) {
error_log($e);
$info = null;
}
但我收到錯誤404的一些你的要求不存在的別名,然後名單牆上的所有飼料ID。當我通過簡單的請求打電話給我時,我會成功接收它。 有人可以幫助我,告訴我哪裏有錯誤?
謝謝您的回覆! 您的代碼有效,與我的代碼非常相似。你有一些改進,我忘了像特定的領域id等等。 因此,我更新我的代碼,只爲場0,而不是所有的人。 'relative_url'=> '/{result=prispevky:$.data.0.id}/comments' 和它的作品。但是,如果我得到所有的ID,然後要求每個ID,我將保存沒有請求時間。 – Jindra
請求不是問題嗎?我的印象是數據丟失,涉及試圖批量超過20個請求?你可以爲其創建一個新的20個20的限制,你正在請求。 編輯:我要與所有的語句來試試這個*,看看它是如何工作的,我從來沒有真正試圖擺脫批次所有評論與* –
我只是基準你的方法了,哇差異顯着「謝謝你,你也解決了我的一個問題:-)「 你是如此正確omg - ** 80個最新的帖子和每個20個評論,從Facebook頁面在3秒以內。** https:// shawnsspace。 COM /插件/ TimeLineFeedBenchMark.php?主題=黑&的pageid = Facebook的 –