Facebook только возвращает имя и идентификатор пользователя
Я пытаюсь войти на мой сайт, используя свою учетную запись в Facebook, но Facebook дает имя и идентификатор, но этого недостаточно для входа в систему. До того, как я получил полную информацию, такую как имя, фамилия, адрес электронной почты и т.д.
Данные, предоставленные facebook:
stdClass Object
(
[name] => FName LName
[id] => 236189327864097
)
Я использую Oauth v2.0 для входа пользователей через Facebook на мой сайт.
Ответы
Ответ 1
Похоже, вы используете v2.4 API-интерфейса Graph. См
Декларативные поля
Чтобы повысить производительность мобильных сетей, Nodes и Edges в версии 2.4 требуют, чтобы вы явно запрашивали нужные вам поля для ваших запросов GET. Например, GET /v2.4/me/feed
больше не включает в себя предпочтения и комментарии по умолчанию, но GET /v2.4/me/feed?fields=comments,likes
вернет данные. Для получения дополнительной информации см. Документы о том, как запрашивать определенные поля.
Чтобы получить представление о том, как использовать так называемое расширение поля, посмотрите
Ответ 2
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 + '!';
});
Это сработало для меня. Передайте адрес электронной почты после/меня? Fields = в запросе FB.api.
Ответ 3
Если вы используете PHP, вам также нужно прочитать эту статью:
https://developers.facebook.com/docs/facebook-login/permissions/v2.4
В основном, Fb говорит о email
, что
Обратите внимание, что даже если вы запрашиваете разрешение электронной почты, оно не гарантируется вы получите адрес электронной почты. Например, если кто-то подписал Facebook с номером телефона вместо адреса электронной почты, адрес электронной почты поле может быть пустым.