Facebook api PHP:向其他用户发布页面提要不工作

Facebook api PHP:向其他用户发布页面提要不工作,php,facebook,Php,Facebook,我一直在尝试在页面提要上发布消息和图像。我一直收到错误信息 (#1)创建共享时出错 只有当其他人试图发帖时才会发生这种情况。如果我,页面的所有者尝试发布它是成功的 所以我的问题是:是否可以向其他用户发布页面提要 我对此做了很多研究,但似乎找不到一个合理的解决办法 下面是我用来发布消息的代码: <?php class Photo_contest_helper extends Facebook { private $_key = '***********'; private

我一直在尝试在页面提要上发布消息和图像。我一直收到错误信息

(#1)创建共享时出错

只有当其他人试图发帖时才会发生这种情况。如果我,页面的所有者尝试发布它是成功的

所以我的问题是:是否可以向其他用户发布页面提要

我对此做了很多研究,但似乎找不到一个合理的解决办法

下面是我用来发布消息的代码:

<?php

class Photo_contest_helper extends Facebook
{
    private $_key = '***********';
    private $_secret = '***************';

    private $_page_id = '387228561388254';

    public $fb_login_url;
    public $fb_logout_url;

    public $image_id;

    public function init()
    {
        $this->connect();

        $image_id = $this->save_image();

        if( !!$image_id ) {
            $this->image_id = $image_id;
            $this->push_to_facebook( $image_id );
        }
    }

    public function save_image()
    {
        $image_id = NULL;

        if ( !!$_POST[ "image" ] || !!$_FILES ) {
            $image_id = Image_helper::save_one( $_POST[ "image" ] );
        }

        return $image_id;
    }

    public function push_to_facebook( $image_id )
    {
        $access_token = $this->get_page_access_token();

        $this->publish_photo( $access_token );
    }

    public function connect()
    {
        parent::__Construct( array( 'appId' => $this->_key, 'secret' => $this->_secret ) );

        $user = $this->getUser();

        if( !$user ) {
            $this->fb_login_url = $this->getLoginUrl( array( 'scope' => 'manage_pages,publish_actions,publish_stream,status_update' ) );
        }
        else {
            $this->fb_logout_url = $this->getLogoutUrl( array( 'next' => 'http://stormtest.co.uk/' . DIRECTORY . "home/logout" ) );
        }
    }

    public function get_page_access_token()
    {
        $accounts = $this->api( '/me/accounts', 'get' );
        $access_token = NULL;

        foreach ( $accounts[ 'data' ] as $account ) {
            if ( $account[ 'id' ] == $this->_page_id ) {
                $access_token = $account[ 'access_token' ];
            }
        }

        return $access_token;
    }

    public function publish_photo( $access_token = "" )
    {

        $params = array( 'message' => 'Competition entry',
                         'link' => 'http://stormtest.co.uk/' . DIRECTORY . '_admin/assets/uploads/images/' . $this->get_image(),
                         'caption' => 'This is my competition entry',
                         'picture' => 'http://stormtest.co.uk/' . DIRECTORY . '_admin/assets/uploads/images/' . $this->get_image() );

        if( !!$access_token ) {
            $params[ 'access_token' ] = $access_token;
        }


        try {
            $this->api( '/' . $this->_page_id . '/feed', 'post', $params );
        }
        catch( FacebookApiException $e ) {
            die( print_r( $e ) );
        }
    }

    public function get_image()
    {
        $image_model = new Image_model();
        $image_model->find( $this->image_id );

        return $image_model->attributes[ 'imgname' ];
    } 
}

?>


提前感谢。

您应该使用JavaScript SDK将内容共享到页面。已禁用通过API发布到其他人的墙上:

FB.ui( {
    method: 'feed',
    to: '387228561388254',
    name: "Facebook API: Tracking Shares using the JavaScript SDK",
    link: "https://www.webniraj.com/2013/05/11/facebook-api-tracking-shares-using-the-javascript-sdk/",
    picture: "https://stackexchange.com/users/flair/557969.png",
    caption: "Tracking Facebook Shares on your website or application is a useful way of seeing how popular your articles are with your readers. In order to tracking Shares, you must used the Facebook JavaScript SDK."
}, callback );

使用上述代码中的
to
字段设置页面id,并相应地更改其他属性(但不要更改
方法
)。

您不能再通过API发布到其他用户的墙上。唯一的可能性是使用Feed/Share对话框,从而让活动用户自己触发帖子。(“我对此做了很多研究”…我觉得很难相信。)谢谢你的澄清