使用Facebook批处理API通过POST请求发送数据

时间:2011-12-17 01:37:52

标签: facebook facebook-graph-api

有没有办法使用Facebook的批处理API向Facebook发送数据(如更新状态或发布到朋友的墙上)。我想通过一次调用Facebook API发布到多个朋友的墙上或类似的东西。

$users = array();

$users[] = array('method' => 'POST', 'relative_url' => '/me/feed', 'body' => "message=Test status update");

try{

    $batchResponse = $facebook->api('?batch='.json_encode($users), 'POST');

}catch(FacebookApiException $e){

    error_log($e);

}

但脚本失败,API调用返回NULL。有人可以用正确的方法帮助我做到这一点。

提前致谢。

1 个答案:

答案 0 :(得分:0)

它失败是因为您没有将URL编码的查询字符串传递给api()函数。在构建数组时使用http_build_query()和批处理请求之前的urlencode()将解决问题。

$batchPost[] = array(
                'method' => 'POST',
                'relative_url' => "/$value/feed",
                'body' => http_build_query($body)
                );

$multiPostResponse = $facebook->api(
                '?batch='.urlencode(json_encode($batchPost)),
                'POST'
                );

您可以在此处找到有关发布到多个墙的详细教程:Tutorial: Post to multiple Facebook wall or timeline in one go using Graph API batch request