Электронная почта больше не возвращается через Facebook oauth

У меня была настроена регистрация / вход в Facebook на моем веб-сайте с использованием Oauth. Одним из фрагментов данных, которые он извлек, была электронная почта, которую я включил в объем своего вызова API.

http://www.facebook.com/dialog/oauth?client_id=[appID]&redirect_uri=[encoded_URL]&scope=email,user_likes,publish_stream

Это перенаправляется на страницу со следующим кодом:

$code = $_GET['code'];

$tokenURL = "https://graph.facebook.com/oauth/access_token?client_id=[appID]&redirect_uri=[encoded_url]&client_secret=[secret_key]&code=" . $code;


// request access token
//use curl and not file_get_contents()
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $tokenURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$accessToken = curl_exec($ch);
curl_close($ch);

$graphURL = "https://graph.facebook.com/me?" . $accessToken;

// request user data using the access token
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $graphURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$tempUser = curl_exec($ch);
curl_close($ch);

//decode the json array to get user data
$user = json_decode($tempUser);

//store user data
$firstName = cleanWords($user->first_name);
$lastName = cleanWords($user->last_name);
$email = cleanEmail($user->email);

Раньше это работало нормально, но затем я внезапно обнаружил, что электронная почта больше не возвращается в объект JSON, даже если пользователь дает разрешение на предоставление электронной почты при первом использовании приложения. Были ли изменения в API, из-за которых теперь электронная почта должна обрабатываться по-другому? Я видел один пост, в котором говорилось, что если пользователь не дал явного разрешения в своих пользовательских настройках на обмен своей электронной почтой с приложениями, он не будет возвращен, но я не смог найти такой настройки в своей учетной записи.

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

Обновление: я получил это, полностью переписав свой код, чтобы использовать новый API Facebook.


person Brian R    schedule 12.08.2013    source источник


Ответы (1)


Я убедился, что это не проблема кода: просто есть что-то другое в конкретной учетной записи Facebook, которую я тестировал. Пока не знаю, что именно, но, поскольку это вопрос об использовании Facebook, а не вопрос о коде, его можно считать ответом.

person Brian R    schedule 13.08.2013
comment
У меня такая же проблема, вы узнали в чем причина? - person Chris Edwards; 21.12.2013