4

状況:

私のFacebookアプリケーション(http://apps.facebook.com/mymagicmirror/)は、ユーザーの性別を検出し、異性または男性または女性を照会する必要がありました

FQL:

SELECT uid, name, pic, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$user_id.') and sex='male'

問題: Facebook ユーザーが他のロケールを使用している場合、「性別」フィールドが「男性」と「女性」に一致しなくなります。代わりに、中国語で言うと、sex は男性 / 女性になり、sex='male' の FQL はゼロの結果を返します。

Facebookユーザーが英語以外のロケールを使用している場合でも、すべての男性/女性の友達を照会する解決策はありますか?

4

4 に答える 4

4

facebookapi_php5_restlib.php次の関数のいずれかをファイルに追加します。

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

次に、呼び出すことができますusers_getInfo_en_US($user, array('sex'));


FQL の関数:
上記のリンクから pid=166866#p166866を使用
1 つは en_US ロケール用 (前の投稿から) で、もう 1 つは使用するロケールを次のように渡すことができます。

public function &fql_query_localized($query, $locale) 
{
  return $this->call_method('facebook.fql.query',
    array('query' => $query, 'locale' => $locale));
}

次に、文字列'en_US'for を渡すだけです$locale

于 2010-02-05T04:51:03.953 に答える
3

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

英語のロケール (en_US) を API 呼び出しに渡すだけで、性別 (男性/女性) が英語で返されます。

http://forum.developers.facebook.com/viewtopic.php?pid=166744も役に立つかもしれません。

于 2009-10-20T15:05:31.230 に答える
1

誰かが Facebook AS3 API を使用している場合: この問題を解決するには、「ロケール」をパラメータとして渡し、en_US ロケールを使用して性別情報を取得します。

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

これは、ローカライズされたものではなく、英語の「男性」/「女性」の値を返します。

于 2010-11-10T13:32:25.310 に答える
0

&locale=en_USAPI クライアントから送信される GET または POST リクエストに追加する必要があります。たとえば、Facebook が提供する PHP クライアント ライブラリ (11 月 2 日にリリースされた最新バージョン) を使用している場合、3316 行目から始まるfacebookapi_php5_restlib.phpファイルの関数を変更するだけです。post_request

行 3320 を置き換えます。

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

これとともに:

$url_with_get = $this->server_addr . '?' . $get_string . '&locale=en_US';
于 2009-11-27T15:48:59.540 に答える