Php 使用facebook api获取未定义的用户电子邮件

Php 使用facebook api获取未定义的用户电子邮件,php,facebook,email,facebook-graph-api-v2.4,Php,Facebook,Email,Facebook Graph Api V2.4,我正在尝试获取用户id、名称和电子邮件。获取id和姓名,但不获取电子邮件。 我有以下代码: <html> <head></head> body> <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'xxxxxxxxxxxx', status : true,

我正在尝试获取用户id、名称和电子邮件。获取id和姓名,但不获取电子邮件。 我有以下代码:

<html>
<head></head>
body>
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
  FB.init({
    appId      : 'xxxxxxxxxxxx',
    status     : true,
    cookie     : true, 
    xfbml      : true  
  });

  FB.Event.subscribe('auth.authResponseChange', function(response) {

    if (response.status === 'connected') {
      testAPI();
    } else if (response.status === 'not_authorized') {
      FB.login();
    } else {
      FB.login();
    }
  });
  };

  (function(d){
   var js, id = 'facebook-jssdk', ref =     d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   ref.parentNode.insertBefore(js, ref);
  }(document));

  function testAPI() {
    FB.api('/me', function(response) {
      console.log(response.name + '---'+response.email);
    });
  }
</script>

<fb:login-button show-faces="true" width="200" max-rows="1"     scope="public_profile,email"></fb:login-button>

</body>
</html>
输出为:

FirstName LastName--未定义


为什么电子邮件是未定义的?我还想得到所有可能得到的信息。怎么做?

我试过用我的测试应用程序编写代码,但我确实遇到了同样的问题。为了解决这个问题,我尝试了这个,我能够得到电子邮件和全名以及

替换为以下内容:

FB.api('/me?fields=name,email', function(response) {
      console.log(response.name + '---'+response.email);
    });

我用我的测试应用程序尝试了你的代码,但我确实遇到了同样的问题。为了解决这个问题,我尝试了这个,我能够得到电子邮件和全名以及

替换为以下内容:

FB.api('/me?fields=name,email', function(response) {
      console.log(response.name + '---'+response.email);
    });

对于完整的登录流,我使用了以下代码行。刚刚在前面的注释中添加了前面的步骤FB.login->FB.api

函数逻辑测试 { FB.loginfunctionresponse { //处理响应 var i=0; FB.api'/me?fields=名称、电子邮件', 函数响应 { console.logresponse.name+'--'+response.email; } ; }, {scope:'电子邮件,公共_配置文件'} ;
} 对于完整的登录流,我使用了以下代码行。刚刚在前面的注释中添加了前面的步骤FB.login->FB.api

函数逻辑测试 { FB.loginfunctionresponse { //处理响应 var i=0; FB.api'/me?fields=名称、电子邮件', 函数响应 { console.logresponse.name+'--'+response.email; } ; }, {scope:'电子邮件,公共_配置文件'} ;
}检查许可证您正在谈论FB.api'/me',functionresponse{console.logresponse.name+'-'+response.email;},{scope':'email'}?它也不起作用。相同的输出。您可以通过应用程序登录fb吗?可以。我得到了用户的全名,但没有收到电子邮件这是由于引入了API v2.4的更改,在这里已经提到了很多,在很多其他问题中,人们在提问之前都懒得阅读更改日志–请参阅“声明性字段”检查许可证您正在谈论的FB.API“/me”,functionresponse{console.logresponse.name+'-'+response.email;},{'scope':'email'}?它也不起作用。相同的输出。您可以通过应用程序登录fb吗?可以。我得到了用户的全名,但不是电子邮件这是由于引入了API v2.4的更改,这在这里已经提到了很多,在很多其他问题中,人们在提问之前都懒得阅读更改日志–请参阅“声明性字段”太好了!!你能告诉我,如何获取所有可能获取的信息吗?默认情况下,你可以获取用户公共档案、用户好友和电子邮件,只需获得高级权限即可将应用程序发送到facebook进行审查。太棒了!!你能告诉我,如何获取所有可能获取的信息吗?默认情况下,你可以获取用户公共档案、用户好友和电子邮件,只需获得高级权限即可将应用程序发送至facebook进行审查。