Я пытаюсь войти на мой сайт, используя свою учетную запись на Facebook, но Facebook дает имя и идентификатор, но этого недостаточно, чтобы войти в систему. До того, как я получил полную информацию, такую как имя, фамилия, адрес электронной почты и т. Д.
Теперь данные, предоставленные facebook:
stdClass Object ( [name] => FName LName [id] => 236189327864097 )
Я использую Oauth v2.0 для входа пользователей через Facebook на свой сайт.
Похоже, вы используете v2.4 API-интерфейса Graph. Видеть
Декларативные поля
Чтобы повысить производительность в мобильных сетях, Nodes и Edges в версии 2.4 требуют, чтобы вы явно запрашивали поля, которые вам нужны для ваших запросов GET. Например,GET /v2.4/me/feed
больше не включает в себя предпочтения и комментарии по умолчанию, ноGET /v2.4/me/feed?fields=comments,likes
вернет данные. Для получения дополнительной информации см. Документы о том, как запрашивать определенные поля.
Чтобы получить представление о том, как использовать так называемое расширение поля, взгляните на
FB.api('/me?fields=first_name, last_name, picture, email', function(response) { console.log(response); document.getElementById('status').innerHTML = 'Thanks for logging in, ' + response.first_name + '!'; });
Это сработало для меня. Передайте email после / me? Fields = в запросе FB.api.
Если вы используете PHP, вам также нужно прочитать эту статью:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
В основном, Fb говорит об email
что
Обратите внимание, что даже если вы запросите разрешение электронной почты, оно не будет гарантировано, вы получите адрес электронной почты. Например, если кто-то подписался на Facebook с номером телефона вместо адреса электронной почты, поле электронной почты может быть пустым.