Facebook javascript sdk 在parse.com上通过Facebook登录时,如何获取用户电子邮件

Facebook javascript sdk 在parse.com上通过Facebook登录时,如何获取用户电子邮件,facebook-javascript-sdk,parse-platform,facebook-authentication,Facebook Javascript Sdk,Parse Platform,Facebook Authentication,我需要在parse.com应用程序中获取用于商业目的的用户电子邮件。是否可以在Facebook注册/登录过程中获取它 例如,我有以下登录代码 var signupLoginFB = function() { Parse.FacebookUtils.logIn("email", { success: function(user) { //do something on successful login }, error: function

我需要在parse.com应用程序中获取用于商业目的的用户电子邮件。是否可以在Facebook注册/登录过程中获取它

例如,我有以下登录代码

var signupLoginFB = function() {
    Parse.FacebookUtils.logIn("email", {
      success: function(user) {
        //do something on successful login
      },
      error: function(user, error) {
        //do something on error
      }
    });
  }

我查看了传递给回调的用户对象,在那里没有看到任何电子邮件。我应该调用其他FB或Parse API来获取这些数据吗?

您需要按如下方式调用FB.API:

var signupLoginFB = function() {
  Parse.FacebookUtils.logIn("email", {
    success: function(user) {
      //do something on successful login
      FB.api('/me', function(me) {
        user.set("displayName", me.name);
        user.set("email", me.email);
        user.save();
        console.log("/me response", me);
      });
    },
    error: function(user, error) {
      //do something on error
    }
  });
}
您将在控制台中看到返回的所有字段。请注意,他们会根据他们决定共享的内容而有所不同,例如,我的Facebook个人资料不包括我的电子邮件,因此不会在/me通话中返回


如果是新用户,也可以考虑只做额外的调用,即在if中封装代码!user.existed{…}。

您需要按如下方式调用FB.api:

var signupLoginFB = function() {
  Parse.FacebookUtils.logIn("email", {
    success: function(user) {
      //do something on successful login
      FB.api('/me', function(me) {
        user.set("displayName", me.name);
        user.set("email", me.email);
        user.save();
        console.log("/me response", me);
      });
    },
    error: function(user, error) {
      //do something on error
    }
  });
}
您将在控制台中看到返回的所有字段。请注意,他们会根据他们决定共享的内容而有所不同,例如,我的Facebook个人资料不包括我的电子邮件,因此不会在/me通话中返回

如果是新用户,也可以考虑只做额外的调用,即在if中封装代码!user.existed{…}