Ограничение количества постов по API - PullRequest
1 голос
/ 18 марта 2012

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

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

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

PS: Я пришел на этот пост, который, кажется, остался нерешенным ...: Сообщение на стене нескольких друзей

И этот пост, который не проясняет мне, является ли моя идея чем-то, что я должен начать или нет;) График API для публикации на стене ограничение

Ответы [ 2 ]

0 голосов
/ 18 января 2013

Я разработал приложение на своем веб-сайте http://www.cefozyt.com, которое может публиковать ссылки, сообщения и т. Д. Для нескольких пользователей Facebook и их групп. Я использовал: -

если ($ пользователю) { // Продолжаем, зная, что вы вошли в систему, у кого есть действительный сеанс.

// ========= Пакетные запросы через API Graph Facebook с использованием PHP-SDK ======== // Сохраняем ваши вызовы методов в массив $ query = array ( массив ('method' => 'GET','lative_url '=>' /'.$user), массив ('method' => 'GET','lative_url '=>' /'.$user.'/friends '), массив ('method' => 'GET','lative_url '=>' /'.$user.'/groups '), массив ('method' => 'GET','lative_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 Graph Facebook с использованием 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 голосов
/ 18 марта 2012

Вы можете использовать пакетный 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');
...