Получить нулевое значение для электронной почты пользователя - restfb

Я недавно начал работать над ручным входом в Facebook. И следил за этим блогом, чтобы получить токен доступа и использовать restfb для доступа к пользовательской информации.
Ниже приведен фрагмент кода, как упомянуто: выборка отдельных объектов:

FacebookClient facebookClient = new DefaultFacebookClient(ACCESS_TOKEN, APP_SECRET);
User user = facebookClient.fetchObject("me", User.class);

Я успешно смог получить имя пользователя, имя и фамилию, но он возвращается null за email (user.getEmail();).

Мое приложение для Facebook имеет разрешения по умолчанию:разрешений

Кто-нибудь поможет мне, как я могу получить доступ к электронной почте пользователя?

ОБНОВИТЬ

Я пытался graph-api исследователь, чтобы увидеть, что я получаю за emailGraph-API Explorerи это говорит Field is empty or disallowed by the access token, Что я должен сделать, чтобы это исправить?

2 ответа

Решение

Либо у пользователя нет своего адреса электронной почты, либо вы не запрашиваете email разрешение по объему.

Проверьте, что у вас есть email разрешения с просьбой me/permissions

В этом блоге упоминается email должен быть установлен в getLoginRedirectURL, Чтобы убедиться в этом, когда вы проходите через диалоговое окно входа, убедитесь, что диалоговое окно входа в Facebook запрашивает разрешение электронной почты.

Это также описано в ручном потоке

https://www.facebook.com/dialog/oauth? client_id={app-id} &redirect_uri={redirect-uri}&scope=email

Попробуй это

User me = client.fetchObject(yourId, User.class,Parameter.with("fields", "email"));
Другие вопросы по тегам