2016-05-16 2 views
-1

Я пытаюсь опубликовать на странице Facebook, что я являюсь администратором с кодом php. Дело в том, что когда я добавляю сообщение на свою личную страницу, я хочу опубликовать его на странице компании в Facebook. Это работает, и я получаю сообщение id, но, когда я перехожу в Facebook, я видел его как уведомление о том, что «pepito разделяет ссылку», но это не в стене биографии.)Публикация в Facebook с PHP и SDK 5.0, как страница

Это разрешение, которое я установил '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

О Access лексем:

Смежные вопросы