0

Я пытаюсь внедрить логин с facebook в веб-приложении. В основном, я использую SDK для Javascript и, во время первой проверки подлинности, я запрашиваю разрешение для основных данных пользователя, адреса электронной почты и местоположения пользователя. Я пробовал свой код с несколькими учетными записями без каких-либо проблем, но с одной учетной записью я не могу получить адрес электронной почты, и я не знаю почему.Facebook логин:

E.g. используя следующий небольшой фрагмент кода:

function fb_login(){ 
    FB.login(function(response) { 
    if (response.authResponse) { 
     print_me(); 
    } 
    },{ scope: 'email,user_location' }); 
} 

function print_me() { 
    FB.api('/me', function(response) { 
    console.log(response); 
    }); 

Facebook запрашивает у пользователя разрешения и он правильно заявляет информацию мне нужно. Затем print_me печатает весь профиль, но с этим конкретным пользователем поле электронной почты отсутствует (но я все равно получаю его). Если я отлаживаю токен с помощью Отклика Token Access, я получаю подтверждение, что область действия маркера: email, user_friends, user_location.

Настройки приватности для этого пользователя совпадают с другими пользователями Я получаю электронное письмо.

Обработка маркера на стороне сервера с помощью facebook-sdk (Python) дает мне тот же результат: полный профиль, но не адрес электронной почты. Любая подсказка о том, что я делаю неправильно? Спасибо

+0

проверить конфиденциальность пользователя в большем объеме, вам явно не хватает somethign –

ответ

0

Я заметил, что если вы нажмете произвольное количество профилей, скажем 100, вы обнаружите, что существует около 75 различных комбинаций данных. У некоторых будет «история работы», а другие, например, не будут. Если профиль достаточно стар, то в профиле может отсутствовать информация. Попробуйте использовать API-интерфейс Graph API, а также убедитесь, что ваш URL-адрес находится в «настройках приложения». Facebook будет разрешать доступ к информации только через сайт/приложение, которое правильно настроено в настройках.

+0

Спасибо, я пробовал с Graph Explorer, но у меня была такая же проблема. В конце я обнаружил, что владелец этой конкретной учетной записи, к которой я пытался получить доступ, не подтвердил адрес электронной почты, и FB api не вернул адрес электронной почты, если он не подтвержден, так как я обнаружил здесь: [ссылка ] (http://stackoverflow.com/questions/9347104/register-with-facebook-sometimes-doesnt-provide-email) – Federico

+0

Да, вы можете вернуться где угодно от пяти до двадцати пяти элементов в массиве. – morantis