【问题标题】:Graph returned an error: (#200) Permissions error图表返回错误:(#200) 权限错误
【发布时间】:2016-02-20 10:40:50
【问题描述】:

当我将帖子发布到我的页面时,它工作正常,但是当我通过设置页面 ID 而不是“我”发布到页面时, 响应如下: 图表返回错误:(#200) 权限错误 源代码如下:

require_once 'src/Facebook/autoload.php';

//*
$config = array();
$config['appId'] = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$config['app_id'] = $config['appId'];
$config['secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$config['app_secret'] = $config['secret'];
define('APP_ID', $config['appId']);
define('APP_SECRET', $config['secret']);
//$config['fileUpload'] = false; // optional
$config['default_graph_version'] = 'v2.5'; 
$config['page_id']  =   'xxxxxxxxxxxxxxxxxxxxxxxx';  

$config['facebook']['permissions'] = array(
  'email',
  'user_location',
  'user_birthday',
  'publish_actions',
  'publish_pages',
  'manage_pages',
  'public_profile',
);

$fb = new Facebook\Facebook($config);




if(isset($_SESSION['fb_access_token'])) {
    $accessToken = $_SESSION['fb_access_token'];

} else {

    $helper = $fb->getRedirectLoginHelper();
    try {
        $accessToken = $helper->getAccessToken();

        if(isset($accessToken)) {
            $oAuth2Client = $fb->getOAuth2Client();

            // longlived access token
            if (!$accessToken->isLongLived()) {
                $accessToken = $oAuth2Client->getLongLivedAccessToken($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;
    }
}



if(isset($accessToken)) {
    // Logged in!
    $_SESSION['fb_access_token'] = (string) $accessToken;

    try {
        $response = $fb->get('/'.$config['page_id'].'/feed', $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;
    } 
} else {
    $helper = $fb->getRedirectLoginHelper();

    $redirect_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $loginUrl = $helper->getLoginUrl($redirect_url, [ 'manage_pages', 'publish_pages', 'publish_actions' ]);
    echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
}





on other action in same page 


$page_access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';







// instance
$fb = new Facebook\Facebook([
    'app_id'     => APP_ID,
    'app_secret' => APP_SECRET,
    'default_graph_version' => 'v2.4',
]);

$linkData = [
  'link' => encodeurl(array('page'=>'page','lang'=>'ar','id'=>$_id,'beg'=>0,'unuse'=>$xtitlex)),
  'message' => $xtitlex,
  'source' => $publish,//$fb->fileToUpload($publish),
  'caption' => DOMAIN_,
  "picture" => $publish,
  "name" => $xtitlex,
  "description" => $xdescriptionx
 ];



try {
    //
    $response = $fb->post('/'.$config['page_id'].'/feed', $linkData, $page_access_token);

} catch(Facebook\Exceptions\FacebookResponseException $e) {
    //print_r($linkData);
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;
}
?>

【问题讨论】:

  • publish_actions、manage_pages、publish_pages:已为此应用程序激活权限

标签: php facebook publish


【解决方案1】:

很可能,您没有使用具有正确权限的页面令牌。确保您使用的是页面令牌而不是用户令牌,并确保它包含 publish_pages。您可以在调试器中测试您的 Token:https://developers.facebook.com/tools/debug/

确保显示页面 ID 和 publish_pages 权限。

【讨论】:

  • 感谢您的帮助
【解决方案2】:

我的应用类型是业务,我刚刚添加了给定列表中的所有权限,添加所有权限后,Facebook 要求我查看权限,我只是继续点击确定,一切正常,错误消失了

【讨论】:

    【解决方案3】:

    首先检查您使用的访问令牌是否生成为“页面访问令牌”而不是“用户令牌”。这有点棘手,花了我一点时间。

    1. 转到“https://developers.facebook.com/tools/explorer/”
    2. 下拉“用户令牌”菜单
    3. 选择“页面访问令牌”
    4. 蓝色按钮“生成访问令牌”
    5. 复制并使用新令牌

    每次添加或删除权限时,令牌都会更改!

    截图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2015-10-13
      • 2014-02-05
      • 1970-01-01
      相关资源
      最近更新 更多