【FuelPHP】OpauthでFacebook連携したい

FuelPHPでOpauthを使用してFacebook連携を行ってみる。

下記のサイトを参考にしました。
http://fuweb.info/77

ログインまではうまく実装できました。
ただ、会員登録しようとするとメールアドレスが取得できなく・・・。
原因はFacebookのGraph APIのバージョンが2.4以降ではデフォルトで全ての情報を返却しない仕様に変更となっているようです。

そこでメールアドレスを取得できるようにするためにしたことをメモ。

app/config/opauth.php の設定を修正。
※ access_tokenを取得する際にメールアドレスも取得できるようにスコープを追加。
※ V2.4からはhttps://graph.facebook.com/meに取得したいフィールドを設定しないといけなくなったのでフィールドを設定できるように追加。

vendor/opauth/facebook/FacebookStrategy.php を修正。

以上を修正することでメールアドレスも取得できるようになりました。
もっとよいやり方もあるかもです。

ちなみにvendor/opauth/facebookはgit submoduleになっているので修正する際は.gitディレクトリを消すなどする必要があるかも。
また、修正は自己責任でおねがいします。


Comments are closed