如何在Facebook图形api中过滤男性和女性ID


How to filter male and female id in Facebook graph api

我知道如何通过以下方式检查id是男性还是女性

<?php
 //get the user gender 
        $user_id = $facebook->getUser();
        $user_profile = $facebook->api('/me','GET');
        $user_gender = $user_profile['gender'];
        echo "Gender: " . $user_gender;
?>

但我需要获得任何 10 个女性身份证或 10 个男性身份证..(不混合)。请问有什么想法吗?

PS:请不要FQL

我知道你说没有FQL,但以防万一你无法得到非FQL的答案:

SELECT sex, uid
FROM user
WHERE uid IN (
  SELECT uid2
  FROM friend
  WHERE uid1 = me()
)
AND sex = 'female'
LIMIT 10
好吧,

您的问题不太清楚您从哪里尝试获取用户 ID。我假设你想分开你朋友的ID。首次检索好友列表:

$f=$facebook->api('/me/friends',array('access_token'=>$accessToken));

然后定义两个数组:male=new array();female=new array(); 。循环检查每个朋友的性别:

foreach($f as $t){
   $usr=$facebook-api("/$t['id']");
       if($usr['gender']=='male')
           $male[]=$usr['id'];
       else 
           $female[]=$usr['id']; 
}

循环结束时,您将在各自的数组中拥有所有男性和女性

我开发了一个简单/干净的代码来解决您公开的内容,只需一个请求。

  1. 创建数组(公、母)
  2. 请求获取 id 和性别(?字段=id,性别)
  3. 循环数据和条件(男性、女性)
   阵列好友    $female_friends = array();    $male_friends = array();    提出请求    $friends = $facebook->api('/me/friends?fields=id,gender');    圈    foreach ($friends['data'] as $friend) {        if ($friend['gender'] =='female') female_friends.push($friend['id']);        else ($friend['gender'] =='male') male_friends.push($friend['id']);    }    显示数据    print_r($female_朋友);    print_r($male_朋友);