0
我一直在嘗試在頁面Feed上發佈消息和圖片。我一直收到錯誤消息Facebook api PHP:發佈到其他用戶頁面Feed不起作用
(#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' ];
}
}
?>
在此先感謝。
您不能通過API發佈到其他用戶的牆上。唯一的可能性是使用Feed/Share對話框,從而讓活動用戶自己觸發帖子。 (_「我對此做了很多研究」_ ...我很難相信這一點。) – CBroe
感謝您的澄清 –