如何通过parse.com中的Facebook登录时获取用户电子邮件

时间:2014-06-10 09:53:47

标签: 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(user, error) {
        //do something on error
      }
    });
  }

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

1 个答案:

答案 0 :(得分:4)

您希望按以下方式拨打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&#34中返回;调用

如果是新用户,请考虑仅执行额外调用,即将该代码包装在if (!user.existed()) {...}中。