Facebook Email field return null (even if the “email” permission is set and accepted)

FacebookFacebook Graph-Api

Facebook Problem Overview


For some users in our application, the email field returns NULL even if the user has granted the email access to the app. When we check the scope parameter and the validity of the user Token thanks to the Debugger tool, everything is ok. The permission email has been accepted. But when we ask the Graph API for the email of the user with the valid user token, it does not appear at all.

Is there a way a user could prevent an app from getting his email even if he granted the email permission?

Thanks

Facebook Solutions


Solution 1 - Facebook

I had the same problem and I think I found out why: If the user has an unconfirmed email in Facebook (i.e. Facebook sent him a validation mail to the user's email address but he didn't respond) Facebook WILL NOT pass that email to your app even if he gave you the email permissions.

So what I did is use his or her Facebook email if the user has a user name (i.e. [email protected]).

Solution 2 - Facebook

I have the same issue. It is working fine on my localhost, i am using php SDK for facebook login and when i submit my request it's return all the fields like email,name etc of the user but on server somehow it is not working.It will not returns user email. I have done lots of R&D on that and i have the solution for the issue. :)

$profile = $facebook->api('/me?fields=email,first_name,last_name');

if you are using php-sdk just passes fields like this it returns the email,first_name etc. Hopes it works for you all. thanks.

Solution 3 - Facebook

All you need to know:

  1. Link 1

> 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 > > - You also need the 'email' extended permission, even for users who have > a valid, confirmed, reachable email address on file.

  1. Link 2

> Note, even if you request the email permission it is not guaranteed > you will get an email address. For example, if someone signed up for > Facebook with a phone number instead of an email address, the email > field may be empty.

Solution 4 - Facebook

Facebook does not send the email if the user has logged in with their phone number. View the comments on https://github.com/mkdynamic/omniauth-facebook/issues/61 for more info.

Solution 5 - Facebook

You must give email permission along with the auth button.

authButton.setReadPermissions(Arrays.asList("email"));

Solution 6 - Facebook

In some cases Facebook may not have a valid email address for a user:

> email: string containing a valid RFC822 email address - note: this > field may be null if no email address is available for the user

see https://developers.facebook.com/docs/reference/api/user/

Solution 7 - Facebook

@ozba solution is not applicable because facebook now shows an alert message when user has an unconfirmed email address. So, if you're having this problem it's more liking that the user had signed up using phone number. Message when trying to access email

Some possible reasons:

  • No Email address on account (only phone number)
  • No confirmed 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.

Check: https://developers.facebook.com/bugs/298946933534016

Solution 8 - Facebook

According to the documentation:

> Note, even if you request the email permission it is not guaranteed you will get an email address. For example, if someone signed up for Facebook with a phone number instead of an email address, the email field may be empty.

That would explain why some users have a null email!

Solution 9 - Facebook

Facebook will provide you a user's email id if and only that user has a confirmed email id associated with his account. If your app can retrieve email id for some users, problem may not with the Developer.

Solution 10 - Facebook

I have read previous responses but though some of them true like if the user has not email confirmed but a mobile phone number, many times this error happens for ignoring how to request the information using FB api graph. Let's say your login was successfully done, and you now have an access token and user id an so on but still, cannot see email and other fields you are interested in. Go ahead using this request after confirming login status as connected:

FB.api(
  '/me',
  'GET',
  {"fields":"id,name,birthday,email,about,cover"},
  function(response) {
      // Insert your code here
  }
);

depends on permissions you requested you now will be able to catch further information according to your needs.

Solution 11 - Facebook

you can try this it will work String email = user.getProperty("email").toString(); String safeEmail = user.asMap().get("email").toString();

Solution 12 - Facebook

You need one more permission from facebook.

include (about_me) permission to the facebook dev setting and also in your app or code..

Solution 13 - Facebook

Just you need to add more permissions to whatever data you want from Facebook object about your user enter image description here

facebook api

Solution 14 - Facebook

$loginUrl = $facebook->getLoginUrl(
  array(
    'req_perms' => 'email'
  )
);

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBenjamin NaïmView Question on Stackoverflow
Solution 1 - FacebookozbaView Answer on Stackoverflow
Solution 2 - Facebookuser3020691View Answer on Stackoverflow
Solution 3 - FacebookhbkView Answer on Stackoverflow
Solution 4 - Facebookuser2468170View Answer on Stackoverflow
Solution 5 - FacebookvarghesekuttyView Answer on Stackoverflow
Solution 6 - FacebookJ StarrView Answer on Stackoverflow
Solution 7 - FacebookPriyanshu ChauhanView Answer on Stackoverflow
Solution 8 - Facebookd-_-bView Answer on Stackoverflow
Solution 9 - Facebookveena s kurupView Answer on Stackoverflow
Solution 10 - FacebookwillyMonView Answer on Stackoverflow
Solution 11 - FacebookHari HaranView Answer on Stackoverflow
Solution 12 - FacebookPrasanna AnbazhaganView Answer on Stackoverflow
Solution 13 - FacebookHussam AdilView Answer on Stackoverflow
Solution 14 - FacebookAmol RanjegaonkarView Answer on Stackoverflow