4

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

我知道如何获得朋友列表,Facebook的共同朋友。但我想要一个可以给出两个Facebook ID之间关系的适当方法。我Google搜索了很多,但没有得到任何与我的问题有关的信息。

+0

我已经给出解决方案后,研究和它的工作。因此被接受。 – 2012-12-20 09:36:37

回答

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'; 
    } 
    } 

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

1
SELECT uid2 FROM friend WHERE uid1 = me() AND uid2 = {YOUR_FRIEND2_ID} 

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

要阅读的朋友表,则需要 任何有效的access_token获取当前会话的用户

这是该表可查询的,朋友的朋友可不要被检索的唯一用户的朋友。

Facebook offical documentation on friend FQL table

+0

对不起,我可以通过fql查询(应用程序用户)检查朋友的朋友。我想用任何简单的方法检查。我们可以得到作为应用用户的朋友的朋友。 – 2012-02-28 14:13:26