Facebook:PHP SDK问题

时间:2015-05-13 17:32:19

标签: php sdk facebook-fql facebook-php-sdk

我有一些facebook php代码在4/30/15升级之前完美运行。我升级了我的代码,它似乎适用于某些计算机但不适用于其他计算机。在它没有工作的计算机上,我尝试过多个具有相同结果的浏览器。我可以使用SDK登录Facebook,但它不会在我的页面墙上发布任何内容。相同的代码,不同的计算机,一切正常。这是代码:

    <?php
$facebook = new Facebook(array(
    'appId' => '##########',
    'secret' => '##########',
    'fileUpload' => true
));
$user     = $facebook->getUser();
if ($user) {
    try {
        $user_profile = $facebook->api('/me');
    }
    catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}
if ($user) {
    $logoutUrl = $facebook->getLogoutUrl(array(
        'next' => ($user['baseurl'] . 'logout.php')
    ));
} else {
    $loginUrl = $facebook->getLoginUrl(array(
        'scope' => 'publish_pages , manage_pages'
    ));
}
$access_token = $facebook->getAccessToken();
$params       = array(
    'access_token' => $access_token
);
#The id of the fanpage
$fanpage      = '############';
#The id of the album
$album_id     = '############';
if ($user) {
    $accounts = $facebook->api('/me/accounts', 'GET', $params);
    foreach ($accounts['data'] as $account) {
        if ($account['id'] == $fanpage || $account['name'] == $fanpage) {
            $fanpage_token = $account['access_token'];
        }
    }
    $message = 'Post this to the wall.';
    $img     = 'path to image.jpg';
    $args    = array(
        'message' => $message,
        'image' => '@' . $img,
        'aid' => $album_id,
        'no_story' => 0,
        'access_token' => $fanpage_token
    );
    $photo   = $facebook->api($album_id . '/photos', 'post', $args);
}
?>

1 个答案:

答案 0 :(得分:0)

大多数权限需要获得Facebook批准才能用于任何用户,否则它们仅适用于在应用中具有角色的用户。查看有关Login Review的文档。

您只能在未经审核的情况下将publish_pagesmanage_pages用作App Admin / Developer / Tester。

如果您只对这些用户进行测试但仍然无效,请调试调试器中的访问令牌,看看这些权限是否真正获得授权:https://developers.facebook.com/tools/debug/

编辑:阅读评论后,我相信您正在尝试使用用户令牌。使用/ me / accounts获取页面令牌并再次使用该令牌。如果您调试令牌,请确保页面也显示出来。