In order to retrieve the email from the latest facebook app(v2.4) you have to explicitly ask for it in your request.
I implemented a method in FacebookProviderAuthorizer.cs class which does it:
private string RequestEmailFromFacebook(string accessToken)
var request =
using (var response = request.GetResponse())
using (var responseStream = response.GetResponseStream())
var reader = new StreamReader(responseStream);
var responseFromServer = reader.ReadToEnd();
var userInfo = JObject.Parse(responseFromServer);
if (userInfo["email"] != null)
I call this in the ParseClaims() method where claims.Contact.Email is set.
I have uploaded the published plugin that I am using for my store: http://1drv.ms/1JNcdvp