Situation:
my facebook application ( http://apps.facebook.com/mymagicmirror/ ) needed to detect user's gender, and then query opposite sex or male or female
FQL:
SELECT uid, name, pic, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$user_id.') and sex='male'
Problem: When the facebook user is using other locale, then the 'sex' field doesn't match 'male' and 'female' anymore. Instead, say in Chinese, the sex will become 男性 / 女性, and the FQL for where sex='male' will return zero results.
Any solution to query all male / female friends even if the facebook user is having locale other than english?
Add one of the following functions to your facebookapi_php5_restlib.php
file:
Function for users.getInfo:
from: http://forum.developers.facebook.com/viewtopic.php?pid=166745#p166745
public function &users_getInfo_en_US($uids, $fields) {
return $this->call_method('facebook.users.getInfo',
array('uids' => $uids, 'fields' => $fields, 'locale' => 'en_US'));
}
Then, you can call users_getInfo_en_US($user, array('sex'));
Functions for FQL:
from the link above but with pid=166866#p166866
One is for the en_US locale (from the post before it) and the other lets you pass in the locale you want to use, like so:
public function &fql_query_localized($query, $locale)
{
return $this->call_method('facebook.fql.query',
array('query' => $query, 'locale' => $locale));
}
Then, just pass in the string 'en_US'
for $locale
.