Facebookのソーシャルログイン機能で得られるユーザー情報

Facebookのソーシャルログイン機能を利用すると、以下のようなユーザー情報を取得できます。

  • ユーザーの公開プロフィール情報(名前、プロフィール画像など)
  • ユーザーのメールアドレス
  • ユーザーの友達リスト(任意のアプリでユーザーの友達のリストを使用する場合)
  • ユーザーが公開設定にしているその他の情報(性別、誕生日、現在の場所など)

ただし、これらの情報はFacebookのプライバシー設定によって制限される場合があります。ユーザーがプライバシー設定で情報の公開範囲を制限している場合、アプリはその情報にアクセスできません。

ユーザーの公開プロフィール情報には、名前、プロフィール画像、性別、誕生日、現在の場所などが含まれます。

ユーザーの公開プロフィール情報のデータレイアウトは以下のようになります:

  • 名前: [ユーザーの名前]
  • プロフィール画像: [プロフィール画像の表示]
  • 性別: [ユーザーの性別]
  • 誕生日: [ユーザーの誕生日]
  • 現在の場所: [ユーザーの現在の場所]

これらの情報は、ユーザーがプライバシー設定で公開している場合にアクセス可能です。

以下のコードは、Facebookのソーシャルログインを使用してユーザー情報を取得するための例です。

// ユーザー情報のスコープを指定
const scope = 'public_profile,email,user_friends';

// ログイン処理を実行
FB.login(function(response) {
  if (response.status === 'connected') {
    // ユーザー情報の取得
    FB.api('/me', {fields: 'id,name,email'}, function(userInfo) {
      // ユーザー情報の表示
      console.log('ユーザー名: ' + userInfo.name);
      console.log('メールアドレス: ' + userInfo.email);
    });
  } else {
    console.log('ログインに失敗しました');
  }
}, {scope: scope});

上記のコードでは、FB.login関数を使用してFacebookのログイン処理を行います。ログインが成功した場合、FB.api関数を使用して/meエンドポイントからユーザー情報を取得します。取得した情報は、コンソールに表示されます。この例では、nameemailのフィールドを取得していますが、必要に応じて他のフィールドも指定できます。

なお、実際のアプリケーションでは、Facebookの開発者ポータルでアプリを作成し、適切な設定を行う必要があります。また、FacebookのJavaScript SDKを事前に読み込む必要があります。

<script async defer crossorigin="anonymous" src="<https://connect.facebook.net/en_US/sdk.js#xfbml=1&version={api-version}&appId={your-app-id}&autoLogAppEvents=1>" nonce="xxx"></script>

ユーザー情報のフィールドには以下のようなものがあります:

  • id: ユーザーの一意のID
  • name: ユーザーの名前
  • first_name: ユーザーの名字
  • last_name: ユーザーの名前
  • middle_name: ユーザーのミドルネーム
  • email: ユーザーのメールアドレス
  • link: ユーザーのプロフィールページのURL
  • picture: ユーザーのプロフィール画像のURL
  • gender: ユーザーの性別
  • locale: ユーザーのロケール(言語や地域設定)
  • timezone: ユーザーのタイムゾーン
  • updated_time: ユーザー情報の最終更新日時

これらのフィールドは、FB.api関数のfieldsパラメータで指定することができます。

例えば、FB.api('/me', {fields: 'name,email,picture'})のようにすると、ユーザーの名前、メールアドレス、プロフィール画像のURLを取得することができます。

必要に応じて、上記のフィールド以外も指定することができます。