Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook graph api 限制API上的帖子数量_Facebook Graph Api_Limits - Fatal编程技术网

Facebook graph api 限制API上的帖子数量

Facebook graph api 限制API上的帖子数量,facebook-graph-api,limits,Facebook Graph Api,Limits,我想建立一个FB应用程序,将消息发布到那些注册该应用程序的人的墙上。 有两种设置: 给许多人的一条信息(一条-多条,一天可能出现几次) 许多特定于用户的按摩(1-1次,但其中许多可能会为每个用户每天进行几次) 总而言之;一个用户每天可以在他的墙上得到一些不同的更新,但这可能会影响许多用户(这几乎就是我想法的全部要点) Facebook会允许我这么做到什么程度,而且不会认为我会发垃圾邮件 附言: 我是随这篇文章来的,这篇文章似乎还没有解决…: 还有这篇文章,它没有让我清楚我的想法是否应该开始;)

我想建立一个FB应用程序,将消息发布到那些注册该应用程序的人的墙上。 有两种设置:

  • 给许多人的一条信息(一条-多条,一天可能出现几次)
  • 许多特定于用户的按摩(1-1次,但其中许多可能会为每个用户每天进行几次)
  • 总而言之;一个用户每天可以在他的墙上得到一些不同的更新,但这可能会影响许多用户(这几乎就是我想法的全部要点) Facebook会允许我这么做到什么程度,而且不会认为我会发垃圾邮件

    附言: 我是随这篇文章来的,这篇文章似乎还没有解决…:

    还有这篇文章,它没有让我清楚我的想法是否应该开始;)

    您可以使用Facebook批处理API来实现您的目的

    您可以通过以下网址获得有关Facebook批量请求的更多信息:


    我在我的网站上开发了一个应用程序,可以向多个facebook用户发布链接、消息等。我用过:-

    如果($user){ //继续,知道您有一个具有有效会话的登录用户

    //============使用PHP-SDK通过Facebook Graph API批处理请求======== //将方法调用保存到数组中 $queries=数组( 数组('method'=>'GET','relative_url'=>'/'.$user), 数组('method'=>'GET','relative_url'=>'/'.$user./friends'), 数组('method'=>'GET','relative_url'=>'/'.$user./groups'), 数组('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通过Facebook Graph API批处理请求=====

    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,这是一个很棒的特性!根据它目前的限制是50。假设我有1.000个不同的用户,我将不得不将发布分为20个请求(尽可能短的“间隔”)。这会成为一个问题吗?我不认为这会成为一个问题。。您可以使用20个请求向1000个用户发布。。但请始终记住,不要向用户发送垃圾邮件。。在我提到的博客文章中,你可以找到关于这个问题的更多信息。事实上,帖子中的脚本会调用多个批处理API来发布给50多个好友。在我的例子中,所有用户(至少)都不是彼此相关的。我只需要发一堆不同的ID。据英国《每日电讯报》报道,你可以在600秒内拨打600个电话(正如他们在2010/2011年写的那样)。这意味着理论上一个人可以在10分钟内发50*600=30000篇帖子……天哪!用户之间不需要相互关联。。access_token={access_token_FOR_ID1}因此被使用。。如果用户彼此相关,则无需为每个呼叫明确提供访问令牌。请编辑您的答案并格式化代码以使其可读。
    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;
        }
    }