WordPress Social LoginプラグインでFBアカウントから取得する情報を増やしたい場合

自分のための備忘録です。決して良い子は真似してはいけません。

使用プラグイン

WordPress Social Login」というプラグインを最近使ってる。他にもありますが、最近はこれに落ち着いた。理由は、デフォルトの認証情報(氏名、メアド、プロフ画像など)をDBに保存するところまでやってくれるので楽だった。

ざっくり手順

  1. FBデベロッパーでアプリ登録する
  2. プラグインをインストール
  3. アプリ情報をWPのプラグインの設定画面から登録
  4. ログインボタン配置

普通に使うだけなら上記で終了。ただし、以下に記載するデフォルト情報以外に、職歴や出身地といった情報も取得したい場合には、FBデベロッパーで、別途申請が必要な上に、プラグインを少し変更する必要あり。

デフォルトの認証情報について

まずはFacebookデベロッパーで、アプリ登録をする。
デフォルトのままだと、FBアカウントでログイン認証をしても、以下の情報しか取得出来ない。

  • メアド
  • 公開情報(氏名・性別・プロフ画像等)
  • フレンド情報

それぞれの詳細はこちらに記載されている。

デフォルト以外の情報も取得出来るようにする

1. FBデベロッパーで申請

デベロッパーで申請が必要になった模様。こちらに詳しく書かれている。

2. プラグイン修正

以下の例では、出身地・現在居住地・職歴を追加。
プラグインを直接修正しているので、アップデートしたら当然消えてしまう。なので良い子は真似してはいけません。

wordpress-social-plugin/includes/settings/wsl.providers.php

public $scope = "email, public_profile, user_friends, user_hometown, user_location, user_work_history";

wordpress-social-plugin/hybridauth/Hybrid/Providers/Facebook.php

 ARRAY( 
        "provider_id"       => "Facebook",
        "provider_name"     => "Facebook", 
        "require_client_id" => true, 
        "callback"          => true,
        "new_app_link"      => "https://developers.facebook.com/apps", 
        "default_api_scope" => "email, public_profile, user_hometown, user_location, user_work_history",

        "default_network"   => true,
        "cat"               => "socialnetworks",
    ),

3. DBの値を変更

ここがもっともハマりポイント。
WPをインストールしているDBにログインし、wp_optionsの値を変更。

■wp_optionsテーブル
key: wsl_settings_Facebook_app_scope
value: email, public_profile, user_hometown, user_location, user_work_history

さいごに

プラグインに手を入れなきゃいけないような使い方は、そもそも間違っていると思うので、本当に良い子は真似してはいけません。というか、こんなことをしなくても認証情報を簡単に増やせるプラグインがあるのであれば、ぜひ教えてください、本当にお願いします。m(_)m