1

我尝试通过批处理请求调用用户帖子。所以我的想法是创建一个多维数组。每个数组有 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;
    } 
}
4

1 回答 1

0

您没有将 $batch 设置回空数组,因此您的 $batch 变量会不断增长。

else {
        $batch_array[] = $batch;
        $req = 0;
        $batch = [];
    }
于 2019-02-07T00:53:49.057 回答