2012-03-18 3 views
1

Я хочу создать приложение FB, которое отправляет сообщения на стены зарегистрированных пользователей. Есть два расстановок:Ограничение числа сообщений по API

  1. одно сообщения для многих людей (1-много, может произойти несколько раз в день)
  2. Многих пользовательских сеансов массажа (1-1, но многие из них, могут произойти несколько раз в день для каждого пользователя)

В целом; один пользователь мог получить несколько разных обновлений на своей стене в день, но это может повлиять на многих пользователей (это в значительной степени суть моей идеи) В какой степени Facebook собирается позволить мне сделать это и не подумает Я буду спамить.

PS: Я пришел по этому сообщению, которое, кажется, остались нерешенными ...: Post on Multiple Friend's Wall

И этот пост, который не делает его для меня ясно, является ли моя идея что-то я следует начинать или нет;) Graph API post to wall limitation

ответ

0

Вы можете использовать API-интерфейс пакета Facebook для выполнения своих целей.

Вы можете получить более подробную информацию по запросу пакетного Facebook по адресу: http://25labs.com/tutorial-post-to-multiple-facebook-wall-or-timeline-in-one-go-using-graph-api-batch-request/

$batchPost[] = array(
    'method' => 'POST', 
    'relative_url' => "/{ID1}/feed?access_token={ACCESS_TOKEN_FOR_ID1}", 
    'body' => http_build_query($body)); 
$batchPost[] = array(
    'method' => 'POST', 
    'relative_url' => "/{ID2}/feed?access_token={ACCESS_TOKEN_FOR_ID2}", 
    'body' => http_build_query($body)); 
$batchPost[] = array(
    'method' => 'POST', 
    'relative_url' => "/{ID3}/feed?access_token={ACCESS_TOKEN_FOR_ID3}", 
    'body' => http_build_query($body)); 

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

Я не видел Патчи APi раньше, отличная функция! Согласно [link] (http://developers.facebook.com/docs/reference/api/batch/) его ограничение в настоящее время составляет 50. Скажем, у меня 1000 пользователей, мне придется распространять проводку более 20 запросов (с коротким «интервалом»). Может ли это стать проблемой? – Planetcrypton

+0

Я не думаю, что это будет проблемой. Вы можете использовать 20 запросов для публикации до 1000 пользователей. Но всегда помните, чтобы не спамить пользователей. В сообщении в блоге, о котором я упомянул, вы можете найти дополнительную информацию о вопрос. На самом деле сценарий в сообщении вызывает многократный пакетный API-вызов, чтобы опубликовать 50+ друзей. –

+0

В моем случае все пользователи не связаны (не привязаны) друг к другу. Мне просто нужно отправить сообщение в кучу разных идентификаторов. Согласно [этому сообщению форума] (http://forum.developers.facebook.net/viewtopic.php?id = 56950), вы можете сделать 600 звонков за 600 секунд (как они пишут в 2010/2011). Так что теоретически можно сделать 50 * 600 = 30000 сообщений за 10 минут ... черт! – Planetcrypton

0

Я разработал приложение на моем сайте 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; 
    } 
} 

} ?>

+0

Пожалуйста, отредактируйте ваш ответ и отформатируйте код, чтобы сделать его читаемым. – kleopatra

Смежные вопросы