4

如何检查两个 facebook id 之间的关系。?即朋友,朋友的朋友或没有关系。通过 fql 或图形 api 方法(任何东西)。

我知道如何获取朋友列表,facebook id 的共同朋友。但我想要一个合适的方法来给出两个 Facebook id 之间的关系。我用谷歌搜索了很多,但没有得到任何与我的问题相关的信息。

4

2 回答 2

1

我通过检查 fql 查询得到了解决方案。

//$target_id=id of user to check relationship
//$source_id=logged in user

    $query="SELECT uid, name, work FROM user WHERE uid IN 
    (SELECT uid2 FROM friend WHERE uid1 = $target_id AND uid2=$source_id)
     ORDER BY name";

    $user_info=$this->facebook->api(array('method'=>'fql.query',
                                'query'=>$query));


    if(!empty($user_info)) 
    {
          $degree='friend';
    }
    else {
        $query="SELECT uid, name, work FROM user WHERE uid IN 
       (SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1 = $target_id) AND uid2=$source_id) 
        ORDER BY name";

       $user_info=$this->facebook->api(array('method'=>'fql.query',
                                    'query'=>$query));

    // we can check friend-of-friend for app user friends

       if(!empty($user_info)) {
           $degree='friend-of-friend'; 
       }
    else{
    $degree='none';
    }
    }

如果有人知道任何简单的方法,请回答。

于 2012-03-01T05:25:41.000 回答
1
 SELECT uid2 FROM friend WHERE uid1 = me() AND uid2 = {YOUR_FRIEND2_ID}

通过这个 FQL 查询,您可以检查给定 ID 是否是当前登录用户的朋友。如果给定的用户不是朋友,它将返回一个空数组。Facebook 不给你朋友的朋友,所以你不能超越登录用户。

要读取朋友表,您需要任何有效的 access_token 来检索当前会话用户的朋友

这是唯一可以查询此表的用户,无法检索朋友的朋友。

Facebook 关于朋友 FQL 表的官方文档

于 2012-02-28T13:36:23.943 回答