Facebook图形api:页面帖子调用返回空数据

时间:2015-03-13 15:31:19

标签: php facebook facebook-graph-api facebook-php-sdk

最终,我试图在属于Facebook页面所有者的网站上显示公开的Facebook页面提要。

我正在使用PHP SDK 4.0尝试从图形api v2.2中提取页面中的几个帖子。

我在developers.facebook.com上设置了一个应用程序,我正在使用app id和app secret来设置默认应用程序。

我在下面使用获取访问令牌的方法返回App访问令牌。

// Skip these two lines if you're using Composer
define('FACEBOOK_SDK_V4_SRC_DIR', __ROOT__.'/facebook/src/Facebook/');
require __ROOT__ . '/facebook/autoload.php';

session_start();
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\GraphPage;
use Facebook\FacebookRequestException;
use Facebook\FacebookRedirectLoginHelper;

$page_id = "pageID";
$app_id = "appID";
$app_secret = "appSecret";

FacebookSession::setDefaultApplication( $app_id, $app_secret );

// Get access token
$access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id={$app_id}&client_secret={$app_secret}&grant_type=client_credentials");
$access_token = substr($access_token, strpos($access_token, "=") + 1); 

// Start new session
$session = new FacebookSession("$access_token");


// Get the GraphUser object for the current user:

try {
  $request =  new FacebookRequest($session, 'GET', "/{$page_id}/posts");
  $response = $request->execute();
  $graphObject = $response->getGraphObject();
  var_dump($graphObject);
} catch (FacebookRequestException $e) {
  echo $e;
  // The Graph API returned an error
} catch (\Exception $e) {
  // Some other error occurred
}

我的代码,并在URL中输入此信息

https://graph.facebook.com/v2.2/pageID/feed?access_token=accessToken

返回

{
   "data": [

   ]
}

有谁知道为什么数据集是空的? 如何获取页面的公开帖子而不必询问网站访问者进行身份验证?

1 个答案:

答案 0 :(得分:0)

一切都在文档中,你知道:

  

<强>权限

     
      
  • 查看公开分享的帖子需要访问令牌。
  •   
  • 需要用户访问令牌才能检索该人可见的帖子。
  •   
  • 需要使用网页访问令牌来检索任何其他帖子。
  •   

这意味着App Access令牌无效。您需要用户或页面访问令牌。