0

我知道如何通过以下方式检查 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 个女性 ID 或 10 个男性 ID ..(不混合)。请问有什么想法吗?

ps:我不要fql请

4

3 回答 3

3

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

SELECT sex, uid
FROM user
WHERE uid IN (
  SELECT uid2
  FROM friend
  WHERE uid1 = me()
)
AND sex = 'female'
LIMIT 10
于 2012-08-18T15:59:33.317 回答
2

那么你的问题不是很清楚你从哪里尝试获取用户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']; 
}

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

于 2012-08-18T17:07:42.513 回答
0

我开发了一个简单/干净的代码来解决您暴露的问题,只需一个请求。

  1. 创建数组(男性,女性)
  2. 请求获取 id 和性别 (?fields=id,gender)
  3. 循环数据和条件(男性,女性)
    // 数组好友
    $female_friends = 数组();
    $male_friends = 数组();

    // 发出请求
    $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_friends);
    print_r($male_friends);

于 2014-07-10T09:18:21.250 回答