前提
Facebook Graph API v2.0から、Facebookアプリで取得できるIDが本物のIDではなくなり、App Scoped User Idと呼ばれるものになった。これはアプリごとに固有のIDとして発行される。
v1.0のAPIを使っていてv2.0に移行した場合はどうなるのか
以前から存在しているアプリでv1.0を使っていて、そこで取得したFacebook ID(本当のID)を保持していたり、それをユーザの識別に使っていた場合、v2.0になった瞬間に紐付けできなくて死亡...するようなことはなく、v1.0でアプリのアクセス許可を出したユーザーは本物のIDがそのままApp Scoped User Idとして使われる模様。だからv2.0に移行しても紐付けできなくて死ぬことはない。というよりもv2.0以前から存在するアプリはv2.0でも常に本物のIDがとれてしまうのか?(要調査)
現在新しくアプリを作成するとそもそもv1.0でアクセス出来ないようだ。バージョンをつけないURLの場合は新しいアプリはv2.0が内部的に使われる。Graph Explorerでも新しいアプリはv1.0が選択できない。
/me で取得できる link 情報
https://www.facebook.com/app_scoped_user_id/10152229474113668/
のようなURLになっている。
プロフィール画像をどうやって取得するか
v1.0ではusername
という項目が取得できたが、v2.0では取得できない。通常プロフィール画像のURLはhttps://graph.facebook.com/{username|user_id}/picture
みたいにしてるケースがサンプルで散見されるしそのようにやっていたが、usernameもIDも取得できないので、どうやるんだろうと思ったが、v1.0で画像を取得していたのと同じようにApp Scoped User Idを入れればいいだけのようだ。このことから、App Scoped User Idは異なるアプリで重複することはないものであることがわかる。
https://graph.facebook.com/10152229474113668/picture