Я не знаю, почему подход Аутентифицированные рефералы не работает для вас, но вот как вы можете запросить адрес email и получить его двумя другими способами (выВам нужно будет деактивировать аутентифицированных рефералов, хотя):
(1) Аутентификация на стороне сервера - Когда Facebook загружает вашу страницу холста, он делает это путем размещения на вашем холсте URL, предоставляя *Параметр Sign_request *.При этом вы можете проверить, аутентифицирован ли пользователь или нет (если он есть, вы получите токен доступа и другие сведения о пользователе, такие как его идентификатор пользователя fb).Если пользователь не аутентифицирован, вы отправляете его по следующему адресу:
https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_url=YOUR_REDIRECT_URI&scope=email,publish_stream,etc
Когда пользователь возвращается, у вас должен быть аутентифицированный подписанный запрос.
(2) Client-Боковая аутентификация - вы используете javascript sdk для аутентификации пользователя на странице холста.
Получив токен доступа, вы можете получить адрес электронной почты, отправив запрос на:
https://graph.facebook.com/me?fields=email
Или со стороны клиента вы можете использовать:
FB.api("me?fields=email", function(response) {
console.log(response);
});
Редактировать
Вы должны прочитать документацию javascript sdk ?особенно FB.login part .Он показывает пример того, как его использовать и запрашивать дополнительные разрешения (используя параметр scope)