Подтвердить что ты не робот

Facebook только возвращает имя и идентификатор пользователя

Я пытаюсь войти на мой сайт, используя свою учетную запись в Facebook, но Facebook дает имя и идентификатор, но этого недостаточно для входа в систему. До того, как я получил полную информацию, такую ​​как имя, фамилия, адрес электронной почты и т.д.

Данные, предоставленные facebook:

stdClass Object
(
    [name] => FName LName
    [id] => 236189327864097
)

Я использую Oauth v2.0 для входа пользователей через Facebook на мой сайт.

4b9b3361

Ответ 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 с номером телефона вместо адреса электронной почты, адрес электронной почты поле может быть пустым.