使用SDK发布为页面管理员

时间:2016-02-08 11:10:11

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

我正在使用最新版本的Facebook的PHP SDK。我有e页面,我只是管理员。我尝试使用Graph api发布页面更新。这是我的代码:

import android.widget.EditText;
import android.widget.RadioButton;

和最后一部分:

//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尝试调用api时会抛出一个错误:

//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;
}

0 个答案:

没有答案