Невозможно получить электронную почту пользователя через Graph API, даже если у вас есть необходимые разрешения - PullRequest
0 голосов
/ 19 марта 2012

Здравствуйте, я новичок в разработке приложений для Facebook и работаю над своим первым приложением.

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

при аутентификации:

$dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . $redirect_uri . "&state=" . $_SESSION['state']."&scope=email,user_photos,publish_stream";

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

$userEmail = json_decode(file_get_contents('http://graph.facebook.com/' . $userId)) -> email;
echo "email: ".$userEmail;

Пожалуйста, помогите мне с этим. Thankyou!

Ответы [ 3 ]

1 голос
/ 19 марта 2012

URL должен быть мне https: // insead из http://

, а также включать токен доступа.

file_get_contents("https://graph.facebook.com/" . $userId . "/?access_token=" . $accesstoken);
0 голосов
/ 19 марта 2012

Вам действительно нужно использовать Facebook SDK, а не объединять URL-адреса самостоятельно: что-то вроде

$params = array(
  'scope' => 'email',
  'redirect_uri' => $redirect_uri
 );
 $dialog_url = $facebook->getLoginUrl($params);

Даст вам ссылку для всплывающего диалогового окна.Затем на перенаправленной странице

$user_profile = $facebook->api('/me','GET');
echo $user_profile['email'];

Документы здесь

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

Вы должны добавить «токен доступа» в ваш запрос, чтобы «аутентифицировать» ваш запрос вызова. В противном случае возвращаются только общедоступные данные.

Найдите здесь шаги, чтобы получить этот токен: http://developers.facebook.com/docs/authentication/

Обычно, если пользователь принимает разрешения, Facebook перенаправит его на URL-адрес $ redirect_uri и добавит параметр «code». С помощью этого кода вы можете получить AccessToken, о котором я упоминал, с помощью другого вызова API Graph.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...