我尝试通过批处理请求调用用户帖子。所以我的想法是创建一个多维数组。每个数组有 50 个请求
$fb->request('GET','/'.$user.'?fields=id,posts{created_time,message,id}');
第一个问题:这是一个请求吗?我认为如此。。。
之后,我想为每个数组进行批处理调用......
foreach($batch_array as $batch){
try {
$responses = $fb->sendBatchRequest($batch);
[...]
这就是问题所在:如果我将请求数设置为 50/array,则在第一次调用后出现错误:
一次发送的批处理请求不能超过 50
个
一个数组中只有一个或 10 个请求,我在 50 或 5 次批处理调用后也收到此错误。
有人知道我做错了什么吗?
谢谢马库斯
编辑:
while($userFB= mysqli_fetch_assoc($userFB_result)){
if($req < 49){
$batch[] = $fb->request('GET','/'.$userFB['facebook_id'].'?fields=id,posts{created_time,message,id}');
$req++;
} else {
$batch_array[] = $batch;
$req = 0;
}
}
$batch_array[] = $batch;
foreach($batch_array as $batch){
try {
$responses = $fb->sendBatchRequest($batch);
$responses_array[] = $responses;
} catch(FacebookExceptionsFacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
}
您没有将$batch设置回空数组,因此您的$batch变量不断增长。
else {
$batch_array[] = $batch;
$req = 0;
$batch = [];
}