Несколько месяцев назад я создал веб-сайт с аутентификацией FB, и он работал с этим:
function setElements(isLoggedIn){
if (isLoggedIn){
FB.api('/me?fields=name,email',function(response){
if (response && !response.error){
$.ajax({
url: 'ajax.php',
type:"POST",
data: { name: response.name, email: response.email},
success: function(response){
}
});
}
})
}
}
Сейчас пытаюсь создать новый. Он по-прежнему работает с тем же сценарием, но вместо того, чтобы теперь получать и имя, и адрес электронной почты, я получаю только электронное письмо.
если я вхожу в консоль «response: name», я получаю его, но «response.email» показывает «undefined».
Возможно, они изменили свои методы получения электронной почты за несколько месяцев (по соображениям конфиденциальности или как-то еще). Подскажите, пожалуйста, как я могу это исправить?
Спасибо.
Спасибо за Ваш ответ. Извините, но я просто дилетант. Я не знаю, что это за вкладка «Сеть» и как проверить, что было отправлено и возвращено.
Нажмите F12, и вы получите окно инструментов разработчика. Должна быть вкладка с надписью «Сеть». Пока это работает, выполните свой код еще раз, и вы должны увидеть запрос на facebook. При нажатии на этот запрос должен открываться вид сбоку с такими данными, как заголовки, ответ и т. д.
Заголовок: "access_token: xxx fields: name, email method: get pretty: 0 sdk: joey suppress_http_code: 1 Response: {" name ":" myname "," id ":" 123456 "}
Поэтому я прошу указать имя и адрес электронной почты (вкладка заголовка), и он по какой-то причине выдаст имя и идентификатор (вкладка предварительного просмотра). Это с инструментами разработчика Safari (на Mac). Я думаю, что идентификатор автоматически извлекается независимо от того, что вы просите, но «электронная почта», похоже, ничего не получает (больше).



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Так что это дало мне ответ, который действительно был непонятен. Дело было не в коде, а в интерфейсе разработчика Facebook.
Facebook Graph Api в Unity не предоставляет разрешение на электронную почту
Проблема решена, спасибо.
PS: Большинство документов API вводят в заблуждение, поскольку они говорят, что электронная почта не требует разрешения, поскольку она является частью стандартных данных профиля (имя, идентификатор, адрес электронной почты). Но он нужен, и есть только одно место, где вы можете это изменить.
Их Граф API Explorer возвращает ожидаемые данные. Вы заглянули во вкладку «Сеть», посмотрели на необработанный ответ и посмотрели, отправляются ли / принимаются правильные данные?