获取Facebook好友列表

时间:2015-01-17 23:12:27

标签: facebook facebook-graph-api

我创建了facebook登录链接,该登录请求访问令牌以及朋友列表的权限列表:

<a href="https://www.facebook.com/dialog/oauth?response_type=token&scope=user_friends...>Login</a>

用户成功通过登录并接受这些权限并且我的应用程序存储了访问令牌后,我试图通过以下方式获取他的好友列表:

https://graph.facebook.com/me/friends?access_token={ACCESS_TOKEN}

但我得到的只是:

{
   "data": [

   ],
   "summary": {
      "total_count": 245
   }
}

也许我应该在范围内请求其他内容?

谢谢!

1 个答案:

答案 0 :(得分:1)

$request = new FacebookRequest(
$session,
'GET',
'/me/friends'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();

例如在CodeIgniter中,我使用fb库,我得到这样的朋友列表:

public function get_user_friends() {
    if ( $this->session ) {
        try {
            $fr = new FacebookRequest( $this->session, 'GET', '/me/friends' );
            $request = $fr->execute();
            $user_friends = $request->getGraphObject()->asArray();

            return $user_friends;

        } catch(FacebookRequestException $e) {
            return false;

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

并且不要忘记它有一些条件: 权限

需要具有user_friends权限的用户访问令牌才能查看当前此人的朋友。

这只会返回任何使用过(通过Facebook登录)提出请求的应用的朋友。

如果此人的朋友拒绝了user_friends权限,该朋友将不会显示在此人的朋友列表中。

更多关于:https://developers.facebook.com/docs/graph-api/reference/v2.2/user/friends