Facebook FQL kullanıcı tablo `sex` alanı: nasıl erkek / kadın geri dönmek için bile kullanıcı, farklı yerel kullanıyor?

4 Cevap php

Durum:

benim facebook uygulaması (http://apps.facebook.com/mymagicmirror/) kullanıcının cinsiyetini tespit ve sonra karşı cinsle ya da erkek ya da kadın sorgulamak için gereken

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.

Facebook kullanıcı İngilizce dışındaki yerel sahip olsa bile tüm kadın / erkek arkadaş sorgulamak için herhangi bir çözüm?

4 Cevap

Lütfen facebookapi_php5_restlib.php dosyasına aşağıdaki işlevlerden birini ekleyin:

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

Ardından, users_getInfo_en_US($user, array('sex')); çağırabilirsiniz


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

Sonra, sadece 'en_US' $locale için dize geçmek.

Dan http://forum.developers.facebook.com/viewtopic.php?pid=174065:

Just pass english locale (en_US) to the API call and it should return you genders in english (male/female).

Ayrıca http://forum.developers.facebook.com/viewtopic.php?pid=166744 yararlı olabilir.

Durumda birisi Facebook AS3 API kullanıyor: Bu sorunu çözmek tr yerel kullanılarak cinsiyet bilgi almak için parametre olarak "yerel" geçmek için:

Facebook.api ("/ me", getMeHandler, {locale: 'tr'});

Bu ingilizce "erkek" / "kadın" değerleri, yerelleştirilmiş olanları değil dönecektir.

Eğer GET veya API istemci tarafından gönderilen POST isteği &locale=en_US eklemeniz gerekir. Facebook (2 Kasım yayımlanan son sürüm) tarafından sağlanan PHP istemci kitaplığı kullanılarak Örneğin, o zaman sadece başlar facebookapi_php5_restlib.php Dosyanın post_request işlevini değiştirmek gerekir hattı 3316.

Satırını 3320 değiştirin:

$url_with_get = $this->server_addr . '?' . $get_string;

Bu grubu:

$url_with_get = $this->server_addr . '?' . $get_string . '&local=en_US';