Php Facebook connect api无法获取电子邮件

Php Facebook connect api无法获取电子邮件,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我已经在登录按钮上设置了作用域,它请求允许发送电子邮件,但无法获取电子邮件信息。我正在测试它,所以仅供参考,我有一个主要的电子邮件,它是批准的 我这样做了,但没有解决我的问题: 这是我的代码: define('YOUR_APP_ID', 'x'); define('YOUR_APP_SECRET', 'x'); include_once 'facebook/facebook.php'; $facebook = new Facebook(array( 'appId' => YOUR_

我已经在登录按钮上设置了作用域,它请求允许发送电子邮件,但无法获取电子邮件信息。我正在测试它,所以仅供参考,我有一个主要的电子邮件,它是批准的

我这样做了,但没有解决我的问题:

这是我的代码:

define('YOUR_APP_ID', 'x');
define('YOUR_APP_SECRET', 'x');

include_once 'facebook/facebook.php';

$facebook = new Facebook(array(
 'appId' => YOUR_APP_ID,
 'secret' => YOUR_APP_SECRET,
));

$userId = $facebook->getUser();

<script>
window.fbAsyncInit = function() {
 FB.init({
 appId : <?=YOUR_APP_ID?>,
 status : true,
 cookie : true,
 xfbml : true,
 oauth : true,
 });

 FB.Event.subscribe('auth.login', function(response) {
        loading(1);

        <?
        if ($userId) {
        $userInfo = $facebook->api('/' + $userId + '?locale=en_US&fields=id,name,email');  
        }
        ?>
        var mail = "<?=$userInfo['email']?>";

        $.post("<?=$sozlukscripti["path"]?>inc/reglogin.php", { islem: "fbgiris", mail: mail }, function(data) {
            if(data) {
                location.reload();
            }
            else {
                $.pnotify({title: 'giriş başarısız', text: '<? _e("k. adı & mail ya da şifre yanlış"); ?>', type: 'error'});
            }
        loading();
        }); 
        return false;
 });

 };

(function(d){
 var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 d.getElementsByTagName('head')[0].appendChild(js);
 }(document));
</script>
谢谢你的建议。

谢谢你的帮助(!)

我是一名amatour网站设计师。所以我猜我在javascript代码中犯了一个大错误

var mail = "<?=$userInfo['email']?>";
var-mail=”“;
将javascript代码更改为:

<?
if ($userId) {
$userInfo = $facebook->api('/' + $userId + '?locale=en_US&fields=id,name,email');
$_SESSION['email'] = $userInfo['email'];
}
?>
var mail = "<?=$_SESSION['email']?>";

var mail=“”;
现在它起作用了。但是有人能解释一下为什么它第一次不起作用吗


noob此处

并非所有用户都有电子邮件。电子邮件也需要确认我正在测试应用程序。我有一封主邮件,它也被确认了。@WizKid你能再检查一遍吗?:)
<?
if ($userId) {
$userInfo = $facebook->api('/' + $userId + '?locale=en_US&fields=id,name,email');
$_SESSION['email'] = $userInfo['email'];
}
?>
var mail = "<?=$_SESSION['email']?>";