1

アプリに登録された壁にメッセージを投稿する FB アプリを作成したいと考えています。次の 2 つの設定があります。

  1. 多くの人への 1 つのメッセージ (1 対多、1 日に数回発生する可能性があります)
  2. 多くのユーザー固有のメッセージ (1 対 1 ですが、その多くはユーザーごとに 1 日に数回発生する可能性があります)

概して; 1 人のユーザーが 1 日に自分のウォールでいくつかの異なる更新を受け取ることができますが、それは多くのユーザーに影響を与える可能性があります (それが私のアイデアの要点です) Facebook はどこまで私にこれを許可するつもりで、私がスパムになります。

PS: この投稿にたどり着きましたが、未解決のままのようです...: 複数の友人のウォールに投稿する

そして、この投稿では、自分のアイデアが何か始めるべきかどうかがはっきりしません ;) 壁へのグラフ API 投稿の制限

4

2 に答える 2

0

私は自分のウェブサイトhttp://www.cefozyt.comで、複数のFacebookユーザーのウォールやグループにリンクやメッセージなどを投稿できるアプリを開発しました。私が使用した:-

if($ user){//有効なセッションを持つログインユーザーがいることを確認して続行します。

//=========PHP-SDKを使用したFacebookGraphAPIを介したバッチリクエスト========//メソッド呼び出しを配列に保存$queries= array(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);

//=========PHP-SDKを使用したFacebookGraphAPIを介したバッチリクエストは終了します=====

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;
    }
}

}?>

于 2013-01-18T12:20:07.470 に答える
0

Facebook バッチ API を使用して、意図したことを行うことができます。

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');
于 2012-03-18T16:39:59.657 に答える