Facebook API 2.2 - me / accounts - 返回数组(0)

时间:2015-02-18 14:37:53

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

我实际上遇到了图API的问题:

https://developers.facebook.com/tools/explorer?method=GET&path=me%2Faccounts&version=v2.2&

我一直在使用扩展权限' manage_pages'生成访问令牌。我正在边缘尝试请求' me / accounts'。 结果总是:

{
  "data": [
  ]
}

但我希望获得一个页面访问令牌。 这是正常的行为,还是我错过了什么?


我还尝试使用php SDK 4.0,使用短命和长期令牌,并得到相同的结果...... 我的代码在这里:

$app_id             = '-hidden-';  //Facebook App ID
$app_secret         = '-hidden-';  //Facebook App Secret    
$long_lived_token   = '-hidden-';  // tested at https://developers.facebook.com/tools/debug/ 
                                   //and giving  - Expires :1429438313 (in about 2 months) 

FacebookSession::setDefaultApplication($app_id , $app_secret);
$session = new FacebookSession($long_lived_token);

if ($session) { 
    try {
        $user_permissions = (new FacebookRequest($session, 'GET', '/me/permissions'))
            ->execute()->getGraphObject(GraphUser::className())->asArray();

        $found_permission = false;
        foreach($user_permissions as $key => $val){        
            if($val->permission == 'manage_pages'){
                $found_permission = true;
            }
        }

        // if we got manage_pages
        if($found_permission){
            $user_token = (new FacebookRequest($session, 'GET', '/me/accounts'))
                ->execute()->getGraphObject(GraphUser::className())->asArray();
            var_dump($user_token); //array(0) { }  -  Why?? Is this normal??
        } else {
            echo "Manage pages not granted!";
        }

    } catch(FacebookRequestException $e) {
        echo "Exception occured, code: " . $e->getCode();
        echo " with message: " . $e->getMessage();
    } 
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我的用户没有任何要管理的网页,这就是数组为空的原因。 我猜测页面访问令牌可用于管理配置文件,但我错了。

答案 1 :(得分:0)

对于有此问题但仍然无法解决的任何人,我的问题是我在获得我要查找的页面的管理员特权之前已经生成了一个access_token,因此不知道为什么,我无法检索该页面。然后,我从我的Facebook页面上删除了访问权限,当我生成一个新令牌时,它就起作用了。