Take the 2-minute tour ×

I'm using Register with Facebook as one of the ways to log in to my web app, and expressly ask for the "email" permission..

On login, some of the user data ($facebook->api('/me')) is stored into the users database, however, sometimes the email field just doesn't exist - is this a common problem?

share|improve this question
have take a look to: stackoverflow.com/questions/9601620/… ? –  Mangiucugna Aug 18 '13 at 16:14
add comment

5 Answers

up vote 11 down vote accepted

Just a guess...

The facebook documentation says:



So when an email address become invalid (users who haven't used facebook in years and have destroyed/changed their email address since for example), facebook may stop returning this field.

5% of invalid address may sounds big, but if I check my facebook friends, I think more than 5% of them never use their account, and I wouldn't be surprised if the address they used when they signed in is now invalid.

share|improve this answer
Thanks for digging that out from docs! I don't really think Facebook checks if user email is valid as time passes. Can you just link the docs for reference? –  Michal Szyndel Aug 22 '13 at 10:36
done. I don't think Facebook checks, but I do think Facebook send emails to users for various reason (notification, announcement, etc.). Then Facebook is aware if the email is valid or not! –  Sebastien C. Aug 22 '13 at 10:42
Facebook does check over time if a user's email is valid. I have this problem with my own facebook account. At this moment facebook thinks my email is not valid. And it does not return in graph explorer –  Karl Jul 3 at 20:10
add comment

Users don't always have to provide an email address in order to use Facebook. They can also sign up via SMS, though it's far less common.

In short, FB won't always have an email address, so can't serve it to your app.

share|improve this answer
All my users are in Japan, where SMS virtually doesn't exist.. I wonder, are there any other ways to register for Facebook without an email address? –  KKobayashi Feb 24 '12 at 5:05
add comment


// Just to make sure email are permitted
//$facebook->getLoginUrl(array('req_perms' => 'email'))

// Request email
FB.api('/me?scope=email', function(response) { /*...*/ });


$email = $facebook->api('user_id?fields=email');


  • The user changed the visibility of its email address to "only me" and thus you have no way to get it.
  • The user registered with SMS instead of email as mentioned in the previous answer.


If you absolutely need to contact the user but you cannot get its email address nyou can still get its Facebook email (everybody has this email): "user_name@facebook.com".

If the user uses a POP server he will directly receive the email in GMail or others, if not he will receive your email as a private message. The only drawback if this method is that your email must be "plain/text" and not "HTML".

share|improve this answer
I don't think you understand the question - FB doesn't return the email despite of method I try to get it (even in FB api explorer) –  Michal Szyndel Aug 17 '13 at 8:25
Yes I understand your question, please check at my updated answer. –  glautrou Aug 17 '13 at 8:40
no, you don't. I gave a bounty to get someone dig through docs or maybe some fb employee being able to tell me why and in what cases I would not receive email address of user. –  Michal Szyndel Aug 17 '13 at 8:42
I told you why you didn't receive the email from the user, if you only want the answer from a Facebook employee please specify it in your question instead of losing the time of others trying to help you. For your information I wasn't targeting your bounty but the original question. –  glautrou Aug 17 '13 at 9:32
Don't get me wrong, I appreciate your engagement. I am just looking for an answer that will reference some sources. I checked and Facebook allows to sign up with phone number only from mobile so I don't really think that it would be 5% of my users, given that app audience is mostly students and older. –  Michal Szyndel Aug 17 '13 at 10:02
show 3 more comments

One thing is Users don't always have to provide an email address in order to use Facebook(could have registered through mobile)- as mentioned by Colm. Apart from this-

Please check that if the user has definitely granted you the email extended permission or it hasn't subsequently been revoked. To have a check on this you could use the permissions api-

share|improve this answer
add comment

I had similar problem & I found the cause for this. This problem occurs for users who have not set their Primary Email Address (They have many email address but they haven’t pointed out which is their primary email address) under General Account setting tab.

I tried using such accounts on various famous sites which has Facebook login & even they couldn’t retrieve the email address from such accounts.

So, its not the problem with the code(Assuming u have asked for permissions). We just have to handle such scenarios & let users know that we didn’t receive their email address. Like Klout does.


share|improve this answer
add comment

Your Answer


