fgrochal/fbbatch

Facebook Batch Requests 类包装器

dev-master 2013-08-22 01:35 UTC

This package is not auto-updated.

Last update: 2024-09-24 05:34:21 UTC


README

FbBatch 类让你能够非常简单地使用 Facebook Batch Requests。什么是 Facebook Batch Requests?

Graph API 的标准版本旨在简化单个对象的资料获取以及对象之间连接的浏览。它还包括同时获取少量对象数据的有限能力。

如果你的应用需要一次性访问大量数据的能力——或者你需要一次性修改多个对象,那么批量查询通常比多次单独的 HTTP 请求更有效率。

为此,Graph API 支持批量处理。批量处理允许你在一个 HTTP 请求中传递多个操作指令。你也可以指定相关操作之间的依赖关系(在下面的部分中描述)。Facebook 将并行处理你的独立操作,并将依赖于操作按顺序处理。一旦所有操作都完成,将返回一个汇总的响应,并关闭 HTTP 连接。

更多信息:https://developers.facebook.com/docs/reference/api/batch/

使用 composer 获取源代码

{
    "require": {
      "fgrochal/fbbatch": "dev-master"
    }
}

示例

多个调用

<?php 
$fb = new Facebook(array('appId' => '####', 'secret' => '####'));
$batch = new FbBatch($fb);

$me = $batch->api('/me');
$friends = $batch->api('/me/friends');

$batch->send();

var_dump($me->getResult());
var_dump($friends->getResult());
?>

多个调用

<?php 
$fb = new Facebook(array('appId' => '###', 'secret' => '###'));
$batch = new FbBatch($fb);

$pageIds = array('pageId1', 'pageId2', 'pageId3', 'pageId4', 'pageId5', 'pageIdN');
foreach($pageIds as $id) {
  $batch->api('/' . $id);
}

$calls = $batch->send();
foreach($calls as $call) {
  var_dump($call->getResult());
}
?>

依赖关系

<?php 
$fb = new Facebook(array('appId' => '###', 'secret' => '###'));
$batch = new FbBatch($fb);

$me = $batch->api('/me');
$favoriteAthletes = $batch->api('?ids=' . $me->getParam('favorite_athletes.*.id'));

$batch->send();


var_dump($me->getResult());
var_dump($favoriteAthletes->getResult());
?>