Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不再通过Facebook oauth返回电子邮件_Facebook_Facebook Oauth - Fatal编程技术网

不再通过Facebook oauth返回电子邮件

不再通过Facebook oauth返回电子邮件,facebook,facebook-oauth,Facebook,Facebook Oauth,我在我的网站上使用Oauth设置了Facebook注册/登录。它收回的数据之一是电子邮件,我将其包含在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

我在我的网站上使用Oauth设置了Facebook注册/登录。它收回的数据之一是电子邮件,我将其包含在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进行了更改,以便现在需要对电子邮件进行不同的处理?我看到一篇帖子说,如果用户没有在其用户设置中明确授予与应用程序共享电子邮件的权限,则不会返回电子邮件,但我在我的帐户中找不到任何此类设置

有人可以告诉我设置在哪里,这样我就可以测试这是否是问题所在,或者让我知道电子邮件是否不再以相同的方式访问,以及我需要更改什么? 谢谢


更新:为了使用新的Facebook API,我完全重新编写了代码。我已经验证了这不是代码问题:我测试的特定Facebook帐户有一些不同之处。还不确定是什么问题,但由于这是一个Facebook使用问题,而不是代码问题,因此可以认为这是已回答的问题。

我也遇到了同样的问题,您是否找到了问题的原因?