ページフィードにメッセージと画像を投稿しようとしています。エラーメッセージが表示され続けます
(#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' ];
}
}
?>
前もって感謝します。