teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コード追加

2019/05/27 03:20

投稿

zakky_kun
zakky_kun

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- facebook api email取得
1
+ facebook omniauth での email取得ができない
body CHANGED
@@ -1,7 +1,22 @@
1
1
  facebookのapiを使用して、facebookアカウントでのログイン機能を実装しました。
2
- 新規ログイン時に、facebookアカウントに登録されているemailを取得したいのですが、debuggerでfacebookから取得した各要素を見ても、emailがどこにもありません。
2
+ 新規ログイン時に、facebookアカウントに登録されているemailを取得したいのですが、debuggerでfacebookから取得した各要素を見ても、emailがどこにもありません(以下)
3
+ ```rails
4
+ #<OmniAuth::AuthHash credentials=#<OmniAuth::AuthHash expires=true
5
+ expires_at=****** token="*****"> extra=#<OmniAuth::AuthHash raw_info=#<OmniAuth::AuthHash
6
+ id="****" name="Ozaki">> info=#<OmniAuth::AuthHash::InfoHash
7
+ image="http://graph.facebook.com/v2.10/*****/picture" name="Ozaki">
8
+ provider="facebook" uid="*****">
9
+ ```
3
10
  そこで、facebookデベロッパーツールの承認済みアイテムを見ると、eメールの取得権限はデフォルトで備わっていると書いてあります。
4
11
  書いてあることと実際が合っていなく、解決策が見つかりません。
12
+ 教えていただきたいです。
5
13
  ___
6
14
  **試したこと**
7
- twitterのapiと同様に、プライバシーポリシーと利用規約のURLを記述し、変更を保存しましたが、特に何も変わりませんでした。
15
+ twitterのapiと同様に、プライバシーポリシーと利用規約のURLを記述し、変更を保存しましたが、特に何も変わりませんでした。
16
+ また、omniauth.rbは以下です。scopeとinfo_fieldsで正しく設定しているつもりです。
17
+ ```omniauth
18
+ Rails.application.config.middleware.use OmniAuth::Builder do
19
+ provider :facebook, ENV['FACEBOOK_ID'], ENV['FACEBOOK_SECRET'],
20
+ scope: 'email', info_fields: 'email'
21
+ end
22
+ ```