Я разработал приложение на моем сайте http://www.cefozyt.com, которые могут размещать ссылки, сообщения и т.д. для нескольких пользователей facebook стенных & групп. Я использовал: -
if ($ user) { // Продолжайте знать, что у вас есть вошедший пользователь, у которого есть действительный сеанс.
// ========= запросы Пакетные над API Facebook Graph с использованием ======== PHP-SDK // Сохранение ваш метод вызывает в массиве $ запросов = массив ( array ('method' => 'GET', 'relative_url' => '/'.$user), array (' method '=>' GET ',' relative_url '=>' /'.$user. '/ friends'), array ('method' => 'GET', 'relative_url' => '/'.$user.'/groups'), array ('method' => 'GET', 'relative_url '=>' /'.$user.'/likes '), );
// POST your queries to the batch endpoint on the graph.
try{
$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
}catch(Exception $o){
error_log($o);
}
//Return values are indexed in order of the original array, content is in ['body'] as a JSON
//string. Decode for use as a PHP array.
$user_info = json_decode($batchResponse[0]['body'], TRUE);
$friends_list = json_decode($batchResponse[1]['body'], TRUE);
$groups = json_decode($batchResponse[2]['body'], TRUE);
$pages = json_decode($batchResponse[3]['body'], TRUE);
// ========= запросы Пакетные над API Facebook Graph с использованием PHP-SDK заканчивается =====
if(isset($_POST['submit_x'])){
if($_POST['message'] || $_POST['link'] || $_POST['picture']) {
$body = array(
'message' => $_POST['message'],
'link' => $_POST['link'],
'picture' => $_POST['picture'],
'name' => $_POST['name'],
'caption' => $_POST['caption'],
'description' => $_POST['description'],
);
$batchPost=array();
$i=1;
$flag=1;
foreach($_POST as $key => $value) {
if(strpos($key,"id_") === 0) {
$batchPost[] = array('method' => 'POST', 'relative_url' => "/$value/feed", 'body' => http_build_query($body));
if($i++ == 50) {
try{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
error_log($e);
echo("Batch Post Failed");
}
$flag=0;
unset($batchPost);
$i=1;
}
}
}
if(isset($batchPost) && count($batchPost) > 0) {
try{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
error_log($e);
echo("Batch Post Failed");
}
$flag=0;
}
}
else {
$flag=2;
}
}
} ?>
Я не видел Патчи APi раньше, отличная функция! Согласно [link] (http://developers.facebook.com/docs/reference/api/batch/) его ограничение в настоящее время составляет 50. Скажем, у меня 1000 пользователей, мне придется распространять проводку более 20 запросов (с коротким «интервалом»). Может ли это стать проблемой? – Planetcrypton
Я не думаю, что это будет проблемой. Вы можете использовать 20 запросов для публикации до 1000 пользователей. Но всегда помните, чтобы не спамить пользователей. В сообщении в блоге, о котором я упомянул, вы можете найти дополнительную информацию о вопрос. На самом деле сценарий в сообщении вызывает многократный пакетный API-вызов, чтобы опубликовать 50+ друзей. –
В моем случае все пользователи не связаны (не привязаны) друг к другу. Мне просто нужно отправить сообщение в кучу разных идентификаторов. Согласно [этому сообщению форума] (http://forum.developers.facebook.net/viewtopic.php?id = 56950), вы можете сделать 600 звонков за 600 секунд (как они пишут в 2010/2011). Так что теоретически можно сделать 50 * 600 = 30000 сообщений за 10 минут ... черт! – Planetcrypton