LoginSignup
1

More than 1 year has passed since last update.

Socialiteで各プロバイダーごとに取得できるユーザー詳細情報のまとめ

Posted at

はじめに

今回の記事は、Socialteでの認証方法が本題ではなく、認証成功後の取得情報を中心に触れていきます。
具体的には、認証成功後に取得できるユーザー情報が各プロバイダーによって異なるため、ユーザー情報の何が取得できるか纏めております。
取得項目を具体的にまとめた記事は今の所見かけていないので利用ケースはないかもしれないですが、認証後に会員登録の入力項目補完やテーブル追加などで役に立つのかなと思います。
※今回紹介するプロバイダーは、Google、Facebook、Twitter、Yahoo Japanです。

Socialiteとは何?、認証方法については下記記事に説明がありますので、ご興味のある方は見てみてください。

Google

個人情報に関する項目は伏せています。
user配下に詳細情報が入っているのを確認できます。

token: ****
refreshToken: null
expiresIn: ****
id: ****
nickname: ****
name: ****
email: ****
avatar: ****
user: array:12 [
    "sub" => ****
    "name" => ****
    "given_name" => ****
    "family_name" => ****
    "picture" => ****
    "email" => ****
    "email_verified" => true
    "locale" => "ja"
    "hd" => ****
    "id" => ****
    "verified_email" => true
    "link" => null
  ]
"avatar_original": ****

この後紹介するプロバイダでも共通でid、nickname、name、email、avatarは下記で取得可能。

$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();

Facebook

token: ****
refreshToken: null
expiresIn: ****
id: ****
nickname: null
name: ****
email: ****
avatar: ****
user: [
  "name" => ****
  "email" => ****
  "id" => ****
]
"avatar_original": ****
"profileUrl": null

Twitter

取得項目が多いので折りたたみにしています。
token: ****
tokenSecret: ****
id: ****
nickname: ****
name: ****
email: ****
avatar: ****
user: [
  "id_str" => ****
  "entities" => [
    "description" => [
      "urls" => []
    ]
  ]
  "protected" => true
  "followers_count" => ****
  "friends_count" => ****
  "listed_count" => ****
  "created_at" => ****
  "favourites_count" => ****
  "utc_offset" => null
  "time_zone" => null
  "geo_enabled" => false
  "verified" => false
  "statuses_count" => ****
  "lang" => null
  "contributors_enabled" => false
  "is_translator" => false
  "is_translation_enabled" => false
  "profile_background_color" => ****
  "profile_background_tile" => false
  "profile_link_color" => ****
  "profile_sidebar_border_color" => ****
  "profile_sidebar_fill_color" => ****
  "profile_text_color" => ****
  "profile_use_background_image" => true
  "has_extended_profile" => true
  "default_profile" => true
  "default_profile_image" => true
  "following" => false
  "follow_request_sent" => false
  "notifications" => false
  "translator_type" => "none"
  "withheld_in_countries" => []
  "suspended" => false
  "needs_phone_verification" => false
  "url" => null
  "profile_background_image_url" => null
  "profile_background_image_url_https" => null
  "profile_image_url" => ****
  "profile_image_url_https" => ****
  "location" => ""
  "description" => ""
]
"avatar_original": ****

Yahoo Japan

token: ****
refreshToken: ****
expiresIn: ****
id: ****
nickname: ****
name: ****
email: ****
avatar: null
user: [
  "sub" => ****
  "name" => ****
  "given_name" => ****
  "given_name#ja-Kana-JP" => ****
  "given_name#ja-Hani-JP" => ****
  "family_name" => ****
  "family_name#ja-Kana-JP" => ****
  "family_name#ja-Hani-JP" => ****
  "locale" => ****
  "email" => ****
  "email_verified" => true
  "birthdate" => ****
  "zoneinfo" => ****
  "nickname" => ****
  "picture" => ****
]

まとめ

各プロバイダー共通で氏名やメールアドレスは基本取得可能、生年月日は取得できませんでした。
もしかしたら各プロバイダー先で登録しているアカウントによって取得情報が変わるかもしれないです。今回そこまで調査できず、とりあえず既に登録済みのアカウント情報からどこまで取得できるかをまとめました。取得範囲についてご存知の方がいましたら是非、教えてください!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1