Facebookと連携しているアプリで、ユーザーのFacebookIDを知りたい状況が発生。
https://www.facebook.com/profile.php?id=012345678901234567890
↑の様なURLのユーザーならそのままid=以下を取ればいい。
でも
https://www.facebook.com/{USERNAME}
↑の様なURLを設定しているユーザーだと工夫が必要。
例えば、Mark ZuckerbergのURLは↓な感じ。
本人のタイムラインページへ行くとURL欄に出てくる。
https://www.facebook.com/zuck
このURLのwwwの部分をgraphに変える。
https://graph.facebook.com/zuck
これをブラウザでアクセスしたり、curlでアクセスしたりすると、JSONでレスが返ってくる。
{
id: "4",
name: "Mark Zuckerberg",
first_name: "Mark",
last_name: "Zuckerberg",
link: "https://www.facebook.com/zuck",
username: "zuck",
gender: "male",
locale: "en_US"
}
↑の様に個人情報が見れちゃう。
このidの部分がFacebookのUserIdになっている。