質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

3043閲覧

Facebookのoauthによるログインを実装した時に稀にemailが取れないケース

yoneapp

総合スコア85

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2016/04/14 02:28

編集2016/04/14 02:29

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

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

という可能性があるようです。
ユーザのメールが不達の為というのは、想像していなかった可能性でした。

投稿2016/04/22 12:33

yoneapp

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2016/04/14 16:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoneapp

2016/04/15 01:58

アドバイス頂きありがとうございます! 記事を拝見したところOmniAuthでは対応されているようでした。 emailが取れないケースをすべて知りたいと思っていたので 大変ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問