我创建了一个Facebook应用程序,并批准该应用程序访问manage_pages.I我正在寻找PHP代码从页面获取页面访问以获取页面信息。
要获得评论和评分,我使用以下代码
require 'facebook-php-sdk-master/src/facebook.php';
$config = array();
$config['appId'] = '1489047331XXXXX';
$config['secret'] = '6ac210360aad27ab1044e4201XXXX';
$facebook = new Facebook($config);
print_r($facebook);
try {
// 466400200079875 is Facebook id of Fan page https://www.facebook.com/pontikis.net
$ret = $facebook->api("/page_id/ratings?field=open_graph_story", 'GET');
print_r($ret);
} catch(Exception $e) {
echo $e->getMessage();
}

我收到以下错误
(#210)此调用需要页面访问令牌。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
像这样创建新对象,如果不存在则设置access_token:
$fb = new Facebook([
'app_id' => FB_APP_ID,
'app_secret' => FB_APP_SECRET,
'default_graph_version' => 'v2.5',
'default_access_token' => isset($_SESSION['facebook_access_token']) ?
$_SESSION['facebook_access_token'] : FB_APP_ID . '|'. FB_APP_SECRET
]);
仅使用您的FB_APP_ID和FB_APP_SECRET进行更改。现在你有了访问令牌,之后你可以发出请求并获取你需要访问令牌的数据(例如):
$request = $fb->request('GET', '/'.$page_id.'/');
// Send the request to Graph
try {
$response = $fb->getClient()->sendRequest($request);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphPage();
var_dump($graphNode->all());
其中$ page_id是某个页面的id,您可以在其中找到FB页面URL。