LoginSignup
21
21

More than 5 years have passed since last update.

Facebookの氏名を日本語表記で取得する

Last updated at Posted at 2013-03-14

追記

コメントにて指摘をいただきました。
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プロパティに足していきます。

※実行時はあらかじめセッションを開いておく必要があります

.m
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"];

でデータを取得することができます。

参考

Facebook Query Language (FQL) Reference

FQL in the SDK 3.0 Beta for iOS

21
21
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21