Получить нулевое значение для электронной почты пользователя - 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
исследователь, чтобы увидеть, что я получаю за email
и это говорит
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"));