質問: Facebookのoauthを利用して、ログインを実装しました。 OmniAuthを使っていて、以下の様な設定をしています。 ``` Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook, Rails.application.secrets.facebook['appid'], Rails.application.secrets.facebook['appsecret'], { scope: "email,user_birthday,user_friends,user_about_me,user_work_history", info_fields: "name,email,birthday,work,bio,gender", provider_ignores_state: true } end ``` 私や、関係者の間ではemailが正常に取得できているのですが 運用を始めた所、emailが取得できないケースが出てきました。 私が把握している範囲では、以下のとおりです。 * FB登録のメール認証踏んでいない場合 * 電話番号のみで会員登録した場合※ ただ、現在発生しているパターンを解決できていません。FBでemailログインを実装する場合は、その他のパターンを全て網羅しておく必要がありそうです。 その他のケースに関して、ご存じの方がいらっしゃいましたらご教授頂けますと大変うれしいです。よろしくお願い致します。 ※ 電話番号のみで会員登録した場合 if someone signed up for Facebook with a phone number instead of an email address, the email field may be empty. https://developers.facebook.com/docs/facebook-login/permissions#reference-email
回答: API returns null or a phone number in 'email' field of User despite 'email' permission being granted - 開発者向けFacebook によると > > Some possible reasons: > > No Email address on account > > No confirmed email address on account > > No verified email address on account > > User entered a security checkpoint which required them to reconfirm their email address and they have not yet done so > > Users's email address is unreachable > > > という可能性があるようです。 ユーザのメールが不達の為というのは、想像していなかった可能性でした。