2016-05-16 19 views
-1

私はPHPページを管理者にしているFacebookページに投稿しようとしています。私の個人的なウェブページに投稿を追加すると、それをFacebookの会社ページに公開したいのです。それは作品で、私はポストIDを取得しますが、Facebookに行くと、「pepitoはリンクを共有しています」という通知のように見えましたが、伝記の壁にはありません。 )ページのようにPHPとSDK 5.0でFacebookに投稿

これは 'manage_pages'、 'publish_actions'、 'pages_manage_instant_articles'に設定されているアクセス許可です。

そして、これは私のコードです:

<?php 
unset($_SESSION['facebook_access_token']); 
$fbok = false; 
session_start(); 
define('FACEBOOK_SDK_V5_SRC_DIR', 'facebook-sdk-v5/'); 
require_once 'facebook-sdk-v5/autoload.php'; 
$fb = new Facebook\Facebook([ 
    'app_id' => 'XXXXXXXXX', 
    'app_secret' => 'XXXXXXXXXX', 
    'default_graph_version' => 'v2.6', 
]); 
if(!isset($_GET['error'])){ 
    if(isset($_SESSION['facebook_access_token'])){ 
     try { 
      $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
      $requestUserName = $fb->request('GET', '/inmoejemplognu?fields=id,name'); 
      $batch = [ 'user-profile' => $requestUserName ]; 
      $responses = $fb->sendBatchRequest($batch); 
      //$responses = json_decode($response->getBody()); 
      $data = []; 
      $id = ""; 
      foreach ($responses as $key => $response) { 
       if (!$response->isError()) { 
       $data = json_decode($response->getBody()); 
       if($data->name == "Alquiler Vivienda"){ 
        $id = $data->id; 
       }  
       } 
      } 
      echo $id; 
      $fbok = true; 
     } catch(Facebook\Exceptions\FacebookResponseException $e) { 
      $helper = $fb->getRedirectLoginHelper(); 
      $permissions = ['manage_pages', 'publish_actions', 'pages_manage_instant_articles']; // optional 
      $callback = 'http://pablognu.tigrimigri.com/login-callback.php'; 
      $loginUrl = $helper->getLoginUrl($callback, $permissions); 
      header('Location: '. $loginUrl); 
     } 
    } else { 
     $helper = $fb->getRedirectLoginHelper(); 
     $permissions = ['manage_pages', 'publish_actions', 'pages_manage_instant_articles']; // optional 
     $callback = 'http://pablognu.tigrimigri.com/login-callback.php'; 
     $loginUrl = $helper->getLoginUrl($callback, $permissions); 
     header('Location: '. $loginUrl); 
    } 
} 
if($fbok){ 
    echo "Podemos publicar"; 
      $linkData = [ 
       'link' => 'http://www.google.es', 
       'message' => 'Un ejemplo de publicacion', 
      ]; 
      try { 
       $response = $fb->post('/'.$id.'/feed', $linkData, $_SESSION['facebook_access_token']); 
      } catch(Facebook\Exceptions\FacebookResponseException $e) { 
       echo 'Graph returned an error: ' . $e->getMessage(); 
       unset($_SESSION['facebook_access_token']); 
       exit; 
      } catch(Facebook\Exceptions\FacebookSDKException $e) { 
       echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
       exit; 
      } 
      $graphNode = $response->getGraphNode(); 
      echo 'Posted with id: ' . $graphNode['id']; 
//} else { 
// echo "No se ha autorizado el acceso para publicar en facebook"; 
} 

>は、あなたが達成したいものである(「ページとして」投稿したい場合は、すべての

答えて

0

ため

おかげで、私は仮定? )、publish_pagesではなく、publish_actionsを使用する必要があります。ページトークンを使用する必要があります。ドキュメントは、そのことについて非常に特定されます。アクセストークンについてhttps://developers.facebook.com/docs/graph-api/reference/v2.6/page/feed#publish

関連する問題