PHP-сообщение на странице facebook

Я пытаюсь автоматически публиковать на странице Facebook, используя мое приложение, это отлично работает, если я заменю идентификатор my-page-numeric-id на числовой идентификатор моего профиля, но когда я помещаю свой идентификатор страницы, а не my-page-numeric-id, и помещаю действительный доступ к нему не будет опубликован на странице Facebook. Я попытался предоставить разрешение на просмотр, которое следует за «manage_pages, publish_actions», но команда Facebook указала, что вам не нужна все это, потому что вы владеете этой страницей и ее администратором в настоящее время , это разрешение необходимо, когда любой другой человек должен авторизоваться с вашим приложением. Теперь мой вопрос заключается в том, что мой код отлично работает для публикации публикации на стене моего профиля, но я не могу автоматически публиковать на своей странице, в чем проблема, стоящая за ней. Я не могу понять, вот мой код

<?php require_once 'src/facebook.php'; class FacebookApi { var $consumer; var $token; var $method; var $http_status; var $last_api_call; var $callback; var $connection; var $access_token; function __construct($data){ $config = array(); $config['appId'] = $data['consumer_key']; $config['secret'] = $data['consumer_secret']; $this->connection = new Facebook($config); } function share($title, $targetUrl, $imgUrl, $description, $access_token){ $this->connection->setAccessToken($access_token); $params["access_token"] = $access_token; if(!empty($title)){ $params["message"] = $title; $params["name"] = $title; } if(!empty($targetUrl)){ $params["link"] = $targetUrl; } if(!empty($imgUrl)){ $params["picture"] = $imgUrl; } if(!empty($description)){ $params["description"] = $description; } // post to Facebook try { $ret = $this->connection->api('/my-page-numeric-id/feed', 'POST', $params); } catch(Exception $e) { $e->getMessage(); } return true; } function getLoginUrl($params){ return $this->connection->getLoginUrl($params); } function getContent($url) { $ci = curl_init(); /* Curl settings */ curl_setopt($ci, CURLOPT_URL, $url); curl_setopt($ci, CURLOPT_RETURNTRANSFER, true); curl_setopt($ci, CURLOPT_HEADER, false); curl_setopt( $ci, CURLOPT_CONNECTTIMEOUT, 10 ); curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($ci); curl_close ($ci); return $response; } } $access_token = 'long-live-token-here'; $facebookData = array(); $facebookData['consumer_key'] = 'app-id-here'; $facebookData['consumer_secret'] = 'app-secret-here'; $title = "Demo Content Posted on Timeline"; $targetUrl = "http://www.demo_url.com/1234-post"; $imgUrl = "http://img.ruphp.com/php/1234-post-image.png"; $description = "demo_description_here"; $facebook = new FacebookApi($facebookData); $facebook->share($title, $targetUrl, $imgUrl, $description, $access_token); ?> 

С API v2.3 они разделили разрешение публикации на два отдельных:

  • publish_actions – это все, что вы хотите опубликовать в качестве пользователя.

  • если вы хотите опубликовать в качестве страницы, однако вам нужно разрешение publish_pages (в дополнение к manage_pages )

теперь пришло время для facebook v5 sdk

 $fb = new Facebook\Facebook([ 'app_id' => 'app_id', 'app_secret' => 'app_secret', 'default_graph_version' => 'v2.8', ]); // facebook auto post $params = array( "message" => "$title in $merchant $short", "link" => "http://pickmyoffers.com/", "picture" => "http://img.ruphp.com/php/Flipkart.png", "name" => "www.Pickmyoffers.com", "caption" => "www.pickmyoffers.com", "description" => "Submit Coupon and earn money through Pickmyoffers.com | Deals,Coupons and offers." ); $post = $fb->post('/Page_id/feed',$params, $access_token); $post = $post->getGraphNode()->asArray(); } 

надеюсь, что это поможет