最终,我试图在属于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": [
]
}
有谁知道为什么数据集是空的? 如何获取页面的公开帖子而不必询问网站访问者进行身份验证?
答案 0 :(得分:0)
一切都在文档中,你知道:
<强>权限强>
- 查看公开分享的帖子需要访问令牌。
- 需要用户访问令牌才能检索该人可见的帖子。
- 需要使用网页访问令牌来检索任何其他帖子。
这意味着App Access令牌无效。您需要用户或页面访问令牌。