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的 –