使用PHP和SDK 5.0在Facebook上发布类似页面的内容

使用PHP和SDK 5.0在Facebook上发布类似页面的内容,php,facebook,api,sdk,Php,Facebook,Api,Sdk,我正试图用php代码发布到我是管理员的Facebook页面。问题是,当我在个人网页中添加帖子时,我想将其发布到Facebook的公司页面上。它是有效的,我得到了帖子id,但是,当我去Facebook时,我看到它就像一个通知,“pepito与共享链接”,但它没有出现在传记墙上。) 这是我设置的权限“管理页面”、“发布操作”、“页面管理即时文章” 这是我的代码: <?php unset($_SESSION['facebook_access_token']); $fbok = false; se

我正试图用php代码发布到我是管理员的Facebook页面。问题是,当我在个人网页中添加帖子时,我想将其发布到Facebook的公司页面上。它是有效的,我得到了帖子id,但是,当我去Facebook时,我看到它就像一个通知,“pepito与共享链接”,但它没有出现在传记墙上。)

这是我设置的权限“管理页面”、“发布操作”、“页面管理即时文章”

这是我的代码:

<?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";
}

感谢所有的

如果你想发布“作为页面”(我想这是你想要实现的),你必须使用
发布页面
,而不是
发布操作
。您必须使用页面令牌。这些文件非常具体:

关于访问令牌: