2 Stimmen

Wie kann ich die E-Mail des Benutzers erhalten, wenn ich mich über Facebook bei parse.com anmelde?

Ich muss die E-Mail-Adresse eines Benutzers aus geschäftlichen Gründen in meiner parse.com-Anwendung abrufen. Ist es möglich, sie während des Facebook-Anmelde- / Login-Vorgangs abzurufen?

Zum Beispiel habe ich den folgenden Anmeldecode

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

Ich habe den an die Rückruffunktion übergebenen "Benutzer"-Objekt überprüft und habe dort keine E-Mail-Adresse gesehen. Sollte ich einen anderen FB- oder Parse-API-Aufruf tätigen, um diese Daten abzurufen?

4voto

Timothy Walters Punkte 16633

Sie möchten einen Aufruf von FB.api() wie folgt erstellen:

var signupLoginFB = function() {
  Parse.FacebookUtils.logIn("email", {
    success: function(user) {
      //etwas bei erfolgreicher Anmeldung machen
      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) {
      //etwas bei Fehler machen
    }
  });
}

Sie werden alle Felder, die zurückgegeben werden, in der Konsole sehen. Beachten Sie, dass diese je nachdem variieren werden, was sie beschlossen haben zu teilen. Zum Beispiel enthält mein Facebook-Profil nicht meine E-Mail-Adresse öffentlich, daher wird sie nicht beim "/me" Aufruf zurückgegeben.

Erwägen Sie auch nur den zusätzlichen Aufruf durchzuführen, wenn es sich um einen neuen Benutzer handelt, d.h. diesen Code in if (!user.existed()) {...} einfügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X