发布到Facebook页面,因为页面不是管理员用户

时间:2015-09-19 21:07:35

标签: php facebook facebook-php-sdk

我正在尝试将信息发布到Facebook页面,但是作为页面 - 而不是我自己的Facebook个人资料。我正在使用Facebook PHP SDK的第5版。任何想法如何实现这一目标?我的下面的代码很好地发布到Facebook页面,但它将消息作为我自己的个人资料而不是页面发布。

session_start();

define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/src/facebook-sdk-v5/');
require_once __DIR__ . '/src/facebook-sdk-v5/autoload.php';

$fb = new Facebook\Facebook([
    'app_id' => 'appid',
    'app_secret' => 'secretid',
    'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();

try {
    $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
}


if (isset($accessToken)) {

    $_SESSION['facebook_access_token'] = (string) $accessToken;

    $linkData = [
        'link' => 'http://www.example.com',
        'message' => 'User provided message',
    ];

    try {
        $response = $fb->post('/294673057366719/feed', $linkData, $accessToken);
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        echo 'Graph returned an error: '.$e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: '.$e->getMessage();
        exit;
    }

    $graphNode = $response->getGraphNode();

    echo 'Posted with id: '.$graphNode['id'];

} else {

    $permissions = ['publish_pages', 'manage_pages'];
    $loginUrl = $helper->getLoginUrl('http://app.co.uk:8888/facebook/', $permissions);
    echo '<a href="'.$loginUrl.'">Log in</a>';

}

1 个答案:

答案 0 :(得分:0)

感谢。我通过以下方式获取了页面的访问令牌:

您现在拥有Facebook页面的非过期访问令牌