2014年3月12日水曜日

facebookのAPIで居住地をちゃんと取る方法(FQL)

  • このエントリーをはてなブックマークに追加

facebookはAPIで色んな情報を取れるわけで。
年齢や性別はもちろん、職業とかどこに住んでるかとか情報として登録されていれば取れる。

で、今回はどこに住んでるかといった情報を取りたいなと思ったのでその方法をば。

$facebook->api("/me");
通常はmeで取れば大抵の情報は取れるわけで。
とはいっても現在住んでいるところを取るにはscopeとしてuser_locationを設定しないといけないけど。
それを設定しているとmeとして出した情報の中に、配列でどこに住んでるかっていう情報が入っている感じ。

だけどこれは住まいとかを適当な場所にしたり海外にしたりすると、微妙な情報しか取れなかったりする。
例えばバルセロナはスペインのバルセロナっていう情報が欲しいのに、バルセロナという情報しか取れないみたいな。
これだと諸々困ったりする事もあるわけなんだけど以下のFQLを使うと、ちゃんと情報を渡してくれるようになる。
$user = $facebook->getUser();

$location = $facebook->api(
  array(
    "method" => "fql.query",
    "query" => "SELECT current_location FROM user WHERE uid = {$user}"
  )
);

//location data
(
  [0] => Array
    (
      [current_location] => Array
        (
          [city] => Setagaya-ku
          [state] => Tokyo
          [country] => Japan
          [zip] => 
          [latitude] => 35.6333
          [longitude] => 139.65
          [id] => 112344735447930
          [name] =>世田谷区
        )
    )
)
これで日本の東京の世田谷区なんだなっていう情報が手に入る。
もちろんここまで細かい情報がいらないのであればmeで処理しちゃってもいいんじゃないかと。


ってな感じでfacebookのapiでちゃんと居住地を取る方法みたいな。
例えばECサイトで会員登録する際にFacebook認証を噛ませてあげると大体の住所までは入力されるようなものを作れると思う。
まぁ色んな使い道もあるだろう的な感じ。

Adsense