- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user
{
self.profilePictureView.profileID = user.objectID;
self.nameLabel.text = user.name;
NSLog(@"My ID:%@", user.objectID);
}
上記のコードを使用してユーザーIDを印刷しようとしました。そして私が得るものは3176144783XXXXX
。
しかし、私はこのオンラインツールを使用して別のものを手に入れました http://findmyfacebookid.com/ 。結果は1000042591XXXXX
。
誰かが違いを知っていますか?アプリと「findmyfacebookid.com」が同じユーザーに対して異なるユーザーIDを受け取るのはなぜですか?
注:モバイルアプリは、FBの一意のIDを使用して独自のユーザーデータベースを作成する必要があります。したがって、これが一意のIDが必要な理由です。
Facebook APIのv2.0以降、アプリに返されるユーザーIDはアプリにスコープされます(つまり、各アプリは特定のユーザーに対して異なる識別子を受け取ります)-そのサイトが伝えていることとアプリが受け取ったものを比較することはできません意図的に異なる文字列であるため、user.objectID
を呼び出したとき
アプリに返されたIDをアプリ内のユーザーの識別子として使用します-「実際の」または「古い」ユーザーIDを探す必要はありません-他に与えられたユーザーIDを使用する必要がある理由はありませんアプリID
V1.0からv2.0への変更についての詳細はこちら: https://developers.facebook.com/docs/apps/upgrading
また、ここでは、複数のアプリを使用する開発者が複数のアプリを使用するユーザーのIDを相互に関連付ける方法など、アプリスコープのIDについて具体的に説明します: https://developers.facebook.com/docs/ apps/upgrade#upgrading_v2_0_user_ids