追記
コメントにて指摘をいただきました。
Graph APIを用い、me?locale=ja_JP
とするだけでも、日本語で情報を取得できるようです。
以下はFQL組み立て時の備忘として、残しておきます。
新しいSDK(v.3〜)に対応した書き方です。
graph APIにて"me"を指定するだけでは、ローマ字の表記しか取得することができません。
日本語で取得するには、FQLを使用し、localeを日本に設定する必要があります。
Graph APIエクスプローラで試してみる
検証をするには、graph APIエクスプローラが便利です。
トークンを取得して、以下を入力します。
fql?q=SELECT uid, name, pic, sex FROM user WHERE uid = me()&locale=ja_JP
{
"data": [
{
"uid": 01234567890,
"name": "苗字 名前",
"pic": "http://hogehoge",
"sex": "男性 or 女性"
}
]
}
こんなかんじで出力されるはずです。
iOS SDKで試してみる
エクスプローラではクエリにq=hoge&local=hogeと入力していたところを、FBRequestのparametersプロパティに足していきます。
※実行時はあらかじめセッションを開いておく必要があります
FBRequest* request = [FBRequest requestForGraphPath:@"fql"];
// クエリを追加
[request.parameters setObject:@"SELECT uid, name, pic, sex FROM user WHERE uid = me()" forKey:@"q"];
// localeを追加
[request.parameters setObject:@"ja_JP" forKey:@"locale"];
// 取得
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error) {
// エラー処理
} else {
NSLog(@"%@", result);
}
}];
/*
result: {
"data": [
{
"uid": 0123456789,
"name": "苗字 名前",
"pic": "https://hogehoge",
"sex": "男性 or 女性"
}
]
}
*/
注意点
- 氏名以外の表記も日本語になる
localeに日本を指定すると、性別表記も日本語に(male/female → 男性/女性)なります。
- 要素名が若干違う
API使用時と、idがuidに、pictureがpicになっていたりなど、要素名に若干の違いがあります。
- 返却されるデータはdictinary > array > dictinary
なので、上の例では
[[[result objectForKey:@"data"] objectAtIndex:0] objectForKey:@"uid"];
でデータを取得することができます。