Javascript и API входа в Facebook: получите адрес электронной почты пользователя

Несколько месяцев назад я создал веб-сайт с аутентификацией 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».

Возможно, они изменили свои методы получения электронной почты за несколько месяцев (по соображениям конфиденциальности или как-то еще). Подскажите, пожалуйста, как я могу это исправить?

Спасибо.

Их Граф API Explorer возвращает ожидаемые данные. Вы заглянули во вкладку «Сеть», посмотрели на необработанный ответ и посмотрели, отправляются ли / принимаются правильные данные?

Patrick Evans 13.06.2018 21:24

Спасибо за Ваш ответ. Извините, но я просто дилетант. Я не знаю, что это за вкладка «Сеть» и как проверить, что было отправлено и возвращено.

Bachir Messaouri 13.06.2018 21:43

Нажмите F12, и вы получите окно инструментов разработчика. Должна быть вкладка с надписью «Сеть». Пока это работает, выполните свой код еще раз, и вы должны увидеть запрос на facebook. При нажатии на этот запрос должен открываться вид сбоку с такими данными, как заголовки, ответ и т. д.

Patrick Evans 13.06.2018 21:53

Заголовок: "access_token: xxx fields: name, email method: get pretty: 0 sdk: joey suppress_http_code: 1 Response: {" name ":" myname "," id ":" 123456 "}

Bachir Messaouri 13.06.2018 22:15

Поэтому я прошу указать имя и адрес электронной почты (вкладка заголовка), и он по какой-то причине выдаст имя и идентификатор (вкладка предварительного просмотра). Это с инструментами разработчика Safari (на Mac). Я думаю, что идентификатор автоматически извлекается независимо от того, что вы просите, но «электронная почта», похоже, ничего не получает (больше).

Bachir Messaouri 13.06.2018 22:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
5
557
1

Ответы 1

Так что это дало мне ответ, который действительно был непонятен. Дело было не в коде, а в интерфейсе разработчика Facebook.

Facebook Graph Api в Unity не предоставляет разрешение на электронную почту

Проблема решена, спасибо.

PS: Большинство документов API вводят в заблуждение, поскольку они говорят, что электронная почта не требует разрешения, поскольку она является частью стандартных данных профиля (имя, идентификатор, адрес электронной почты). Но он нужен, и есть только одно место, где вы можете это изменить.

Другие вопросы по теме