如何使用facebook php SDK执行批处理请求

如何使用facebook php SDK执行批处理请求,php,facebook,facebook-graph-api,batch-file,Php,Facebook,Facebook Graph Api,Batch File,在我的项目中,我在一个表中有很多事件id。 我想循环这些id,并向facebook请求该特定id的附加信息 现在,我为每个ID发出不同的http请求。我想将其放入一个批处理中,这样我就可以在一个http请求中传递所有ID并接收所有这些事件的所有附加信息 我使用Facebook PHP sdk您可以按如下方式批处理这些请求: curl \ -F 'access_token=…' \ -F 'batch=[ \ {"method": "GET", "relative_url": "m

在我的项目中,我在一个表中有很多事件id。 我想循环这些id,并向facebook请求该特定id的附加信息

现在,我为每个ID发出不同的http请求。我想将其放入一个批处理中,这样我就可以在一个http请求中传递所有ID并接收所有这些事件的所有附加信息


我使用Facebook PHP sdk

您可以按如下方式批处理这些请求:

curl \
-F 'access_token=…' \
-F 'batch=[ \
        {"method": "GET", "relative_url": "me"}, \
        {"method": "GET", "relative_url": "me/friends?limit=50"} \
    ]'\
https://graph.facebook.com

批处理大小限制为50。

您可以按如下方式批处理这些请求:

curl \
-F 'access_token=…' \
-F 'batch=[ \
        {"method": "GET", "relative_url": "me"}, \
        {"method": "GET", "relative_url": "me/friends?limit=50"} \
    ]'\
https://graph.facebook.com

批处理大小限制为50。

这里是一个粗略的示例,在一个批处理中执行两个请求

$batch = array();

$req = array(
    'method'       => 'GET',
    'relative_url' => '/me'
);

$batch[] = json_encode($req);

$req = array(
    'method'       => 'GET',
    'relative_url' => '/me/albums'
);

$batch[] = json_encode($req);

$params = array(
    'batch' => '[' . implode(',',$batch) . ']'
);
try {
    $info = $facebook->api('/','POST',$params);
} catch(FacebookApiException $e) {
    error_log($e);
    $info = null;
}
if(!empty($info)){
    if($info[0]['code'] == '200'){
        $user_profile = json_decode($info[0]['body']);
    }
    if($info[1]['code'] == '200'){
        $user_albums  = json_decode($info[1]['body']);
    }
    echo "<pre>User Profile:\n";
    print_r($user_profile);
    echo "\nAlbums\n";
    print_r($user_albums);
    echo "<pre>";
}

这是一个粗略的示例,但它应该提供执行批处理请求的基础

这里是一个在批处理中执行两个请求的粗略示例

$batch = array();

$req = array(
    'method'       => 'GET',
    'relative_url' => '/me'
);

$batch[] = json_encode($req);

$req = array(
    'method'       => 'GET',
    'relative_url' => '/me/albums'
);

$batch[] = json_encode($req);

$params = array(
    'batch' => '[' . implode(',',$batch) . ']'
);
try {
    $info = $facebook->api('/','POST',$params);
} catch(FacebookApiException $e) {
    error_log($e);
    $info = null;
}
if(!empty($info)){
    if($info[0]['code'] == '200'){
        $user_profile = json_decode($info[0]['body']);
    }
    if($info[1]['code'] == '200'){
        $user_albums  = json_decode($info[1]['body']);
    }
    echo "<pre>User Profile:\n";
    print_r($user_profile);
    echo "\nAlbums\n";
    print_r($user_albums);
    echo "<pre>";
}

这是一个粗略的示例,但它应该提供执行批处理请求的基础

我已经查看了文档,但不是针对PHPSDK的。此示例适用于两个单独的查询。我想问这个问题$这->facebook->api$id,'GET',array'fields'=>'姓名、地点、隐私、位置、开始时间、结束时间、描述';但是一次50个身份证。不知道批处理请求是否可以这样做。谢谢你的帮助!然后你只需要调用$this->facebook->api$id,'GET',array'fields'=>'名称,地点,隐私,位置,开始时间,结束时间,描述,'ids'=>'[CSV用户id列表];我已经查看了文档,但不是针对PHPSDK的。此示例适用于两个单独的查询。我想问这个问题$这->facebook->api$id,'GET',array'fields'=>'姓名、地点、隐私、位置、开始时间、结束时间、描述';但是一次50个身份证。不知道批处理请求是否可以这样做。谢谢你的帮助!然后你只需要调用$this->facebook->api$id,'GET',array'fields'=>'名称,地点,隐私,位置,开始时间,结束时间,描述,'ids'=>'[CSV用户id列表];