Php 使用SDK发布为页面管理员
我使用的是Facebook最新版本的PHPSDK。我有一个只有管理员的电子页面。我尝试使用Graph api发布页面更新。这是我的密码:Php 使用SDK发布为页面管理员,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我使用的是Facebook最新版本的PHPSDK。我有一个只有管理员的电子页面。我尝试使用Graph api发布页面更新。这是我的密码: //index.php $fb = new Facebook\Facebook([ 'app_id' => $log_json['app_id'], 'app_secret' => $log_json['app_secret'], 'default_graph_version' => 'v2.4', ]);
//index.php
$fb = new Facebook\Facebook([
'app_id' => $log_json['app_id'],
'app_secret' => $log_json['app_secret'],
'default_graph_version' => 'v2.4',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['manage_pages', 'pages_show_list', 'publish_pages'];
$callback = 'http://localhost:8000/return.php';
$loginUrl = $helper->getLoginUrl($callback, $permissions);
echo '<a href="'.$loginUrl.'">Log in with Facebook!</a>';
调试您的访问令牌并确保它包括发布页面:是,它包括发布页面作用域。您正在使用页面访问令牌吗?看起来不像。
//return.php
$fb = new Facebook\Facebook([
'app_id' => $log_json['app_id'],
'app_secret' => $log_json['app_secret'],
'default_graph_version' => 'v2.4',]);
$helper = $fb->getRedirectLoginHelper();
$client = $fb->getOAuth2Client(); //for long lived access token
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// There was an error communicating with Graph
echo $e->getMessage();
exit;
}
if (isset($accessToken)) {
$longAccessToken = $client->getLongLivedAccessToken($accessToken);
DB::saveLongLivedToken($longAccessToken); //save token to database
$_SESSION['facebook_access_token'] = DB::getLongLivedToken();
//dump($response);
$res = $fb->post('<page id>/feed', array('message' => 'Hello'), $_SESSION['facebook_access_token']);
dump($res);
exit;
} elseif ($helper->getError()) {
....
exit;
}
Fatal error: Uncaught exception 'Facebook\Exceptions\FacebookAuthorizationException' with message '(#200) The user hasn't authorized the application to perform this action' in.............