LoginSignup
2
0

More than 5 years have passed since last update.

sorcery の external モジュールで facebook の OAuth 認証においてメールアドレスが取得できない場合の対応

Posted at

概要

sorcery https://github.com/Sorcery/sorcery は Rails アプリケーションに認証ロジック機能を付加するgemです。

通常のID/パスワード認証に加え、OAuth 認証も可能です。

問題

facebook の外部プロバイダに :facebook を加えることで facebook での認証が可能ですが、この際にマニュアル通りに以下のscopeを加えても email を取得することができません。

config/initializers/sorcery.rb
config.facebook.access_permissions = %w(email)

原因と解決法

config/initializers/sorcery.rb
config.facebook.access_permissions = %w(email)
config.facebook.user_info_path = 'me?fields=email,id,name'

最近のバージョンのAPIでは fields パラメータを用いて取得する情報を明示的に指定する必要があるため、ユーザー情報取得部分を変更することで、メールアドレスの取得ができます。

参考

2015年7月9日以降にFacebook認証でメールアドレスが取れない問題とその対策

該当のIssue : Facebook Graph API now requires field spec for /me requests #703

2
0
0

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
2
0