Как я могу получить электронную почту пользователя при входе через Facebook в parse.com

Мне нужно получить адрес электронной почты пользователя для деловых целей в моем приложении 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
      }
    });
  }

Я посмотрел на объект «пользователь», переданный в обратный вызов, и не увидел там никакого электронного письма. Должен ли я вызвать какой-либо другой API FB или Parse для получения этих данных?


person mkvakin    schedule 10.06.2014    source источник


Ответы (1)


Вам нужно позвонить 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()) {...}.

person Timothy Walters    schedule 10.06.2014