Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用SDK发布为页面管理员_Php_Facebook_Facebook Graph Api_Facebook Php Sdk - Fatal编程技术网

Php 使用SDK发布为页面管理员

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', ]);

我使用的是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',
]);

$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.............