Зарегистрированный адрес электронной почты пользователя - PullRequest
0 голосов
/ 22 марта 2012

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

Это поле preview , которое я получаю, когдаЯ редактирую данные приложения

Preview Box

И все же я не могу получить адрес электронной почты вошедшего в систему пользователя.

Это URL, который я 'я использую для получения информации о пользователе

https://graph.facebook.com/me?fields=first_name,last_name,email,gender&access_token=+accessToken

Это данные, которые я получаю от facebook

{
   "first_name": "Varun",
   "last_name": "Achar",
   "gender": "male",
   "id": "1XXXXXX66660851"
}

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Я не знаю, почему подход Аутентифицированные рефералы не работает для вас, но вот как вы можете запросить адрес email и получить его двумя другими способами (выВам нужно будет деактивировать аутентифицированных рефералов, хотя):

(1) Аутентификация на стороне сервера - Когда Facebook загружает вашу страницу холста, он делает это путем размещения на вашем холсте URL, предоставляя *Параметр Sign_request *.При этом вы можете проверить, аутентифицирован ли пользователь или нет (если он есть, вы получите токен доступа и другие сведения о пользователе, такие как его идентификатор пользователя fb).Если пользователь не аутентифицирован, вы отправляете его по следующему адресу:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_url=YOUR_REDIRECT_URI&scope=email,publish_stream,etc

Когда пользователь возвращается, у вас должен быть аутентифицированный подписанный запрос.

(2) Client-Боковая аутентификация - вы используете javascript sdk для аутентификации пользователя на странице холста.

Получив токен доступа, вы можете получить адрес электронной почты, отправив запрос на:

https://graph.facebook.com/me?fields=email

Или со стороны клиента вы можете использовать:

FB.api("me?fields=email", function(response) {
    console.log(response);
});

Редактировать

Вы должны прочитать документацию javascript sdk ?особенно FB.login part .Он показывает пример того, как его использовать и запрашивать дополнительные разрешения (используя параметр scope)

0 голосов
/ 23 марта 2012

Вот так у меня наконец получилось. Не удалось заставить его работать через рефералов аутентификации, поэтому пришлось сделать это

FB.login(function(resp)
{
  // Handle the response.
}
, {scope: "email, user_relationships"});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...