Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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
Php Facebook页面-发布到用户墙(在用户喜欢该页面后)_Php_Facebook_Facebook Php Sdk - Fatal编程技术网

Php Facebook页面-发布到用户墙(在用户喜欢该页面后)

Php Facebook页面-发布到用户墙(在用户喜欢该页面后),php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,我希望它没有那么复杂,但由于Facebook已经改变了很多API(关于权限等),我发现很多过时的信息对我没有帮助。 情况是: 我有一个带有页面标签的Facebook页面 我得到了一个与该页面相关联的Facebook应用程序(通过标签) 我自己的WebApp通过Facebook PHP-SDK发布到页面的墙上,每个用户都可以看到流中的新闻 问题:如何通过该应用程序向用户发布时间线 到目前为止我的代码(张贴到页面的墙上) 这很好,但该消息在喜欢该页面的用户的时间线中不可用,仅在他们自己的流中可用。有

我希望它没有那么复杂,但由于Facebook已经改变了很多API(关于权限等),我发现很多过时的信息对我没有帮助。 情况是:

  • 我有一个带有页面标签的Facebook页面
  • 我得到了一个与该页面相关联的Facebook应用程序(通过标签)
  • 我自己的WebApp通过Facebook PHP-SDK发布到页面的墙上,每个用户都可以看到流中的新闻
  • 问题:如何通过该应用程序向用户发布时间线

    到目前为止我的代码(张贴到页面的墙上)


    这很好,但该消息在喜欢该页面的用户的时间线中不可用,仅在他们自己的流中可用。有可能发布到他们的时间表吗?

    不知道您是否仍然需要帮助。但以防万一,这段代码对我来说很有用。它假定您有一个已登录的用户。并将其发布到用户的时间线上。这个代码没有得到许可,我相信,你需要工作,因为Facebook有平台TOS。试试这个:

         require_once('libs/facebook.php');
    
        // init new facebook class instance with app info (taken from the DB)
        $facebook = new Facebook(array(
            'appId' => 'your app id here',
            'secret' => 'your app secret here'
        ));
    
    
    
        $fb_user_id = $facebook->getUser();
        $location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream'));
    
        if ($fb_user_id) {
            try {
                $fb_user_profile = $facebook->api('/me');   
    
            } catch (FacebookApiException $e) {
                $fb_user_id = NULL;
    
                print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
                die();
            }
        } else {
    
            print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
            die();
        }
    
    
        $ret_obj = $facebook->api('/me/feed', 'POST',
                                array(
                                'link' => 'www.google.com',
                                'message' => 'Google me!'
                                                 ));
    
    require_once('libs/facebook.php');
    //使用应用程序信息初始化新的facebook类实例(取自数据库)
    $facebook=新的facebook(数组)(
    “appId”=>“此处为您的应用程序id”,
    “机密”=>“您的应用程序机密在此”
    ));
    $fb_user_id=$facebook->getUser();
    $location=”“$facebook->getLoginUrl(数组('scope'=>'publish_stream');
    if($fb\U用户\U id){
    试一试{
    $fb_user_profile=$facebook->api('/me');
    }捕获(FacebookApiException$e){
    $fb_user_id=NULL;
    打印“top.location.href=”.$location.“;”;
    模具();
    }
    }否则{
    打印“top.location.href=”.$location.“;”;
    模具();
    }
    $ret_obj=$facebook->api('/me/feed',POST',
    排列(
    “link”=>“www.google.com”,
    “消息”=>“用谷歌搜索我!”
    ));
    
    在获得权限且用户登录后,要求用户登录到您的应用程序,并确保您拥有发布流权限。您可以通过使用所需参数(检查文档)向“/me/feed”发出post请求,将其张贴到他们的墙上。但我认为这是FB不允许的(用户应该知道你的应用程序会发布,否则你可能会破坏FB的平台TOS)。您可能想在实现FB可能会限制您的应用程序的发布权限等内容之前检查他们的TOS。在您上面的代码中,即使用户(不是管理员)喜欢该页面,它是否也会发布?我已经用我的另一个帐户试过了,它被设置为用户,但是没有发布。它只在管理员使用页面时发布。
         require_once('libs/facebook.php');
    
        // init new facebook class instance with app info (taken from the DB)
        $facebook = new Facebook(array(
            'appId' => 'your app id here',
            'secret' => 'your app secret here'
        ));
    
    
    
        $fb_user_id = $facebook->getUser();
        $location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream'));
    
        if ($fb_user_id) {
            try {
                $fb_user_profile = $facebook->api('/me');   
    
            } catch (FacebookApiException $e) {
                $fb_user_id = NULL;
    
                print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
                die();
            }
        } else {
    
            print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>';
            die();
        }
    
    
        $ret_obj = $facebook->api('/me/feed', 'POST',
                                array(
                                'link' => 'www.google.com',
                                'message' => 'Google me!'
                                                 ));