Registrieren Sie sich bei Facebook manchmal nicht per E-Mail
Ich bin mit Registrieren mit Facebook als eine der Möglichkeiten, um sich in meinem web-app, und ausdrücklich darum bitten, die "email" - permission..
Auf "login", einige der user-Daten ($facebook->api('/me')
) gespeichert ist, in die Benutzer-Datenbank, manchmal wird jedoch der E-Mail-Feld einfach nicht existieren - ist dies ein Allgemeines problem?
- haben, werfen Sie einen Blick auf: stackoverflow.com/questions/9601620/... ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur eine Vermutung...
Der facebook-Dokumentation sagt:
Quelle: https://developers.facebook.com/docs/reference/api/user/
So, wenn ein E-Mail-Adresse ungültig (Benutzer, die nicht verwendet haben, facebook in Jahren und haben zerstört/verändert Ihre E-Mail-Adresse, da zum Beispiel), facebook reagiert Rückkehr dieses Feld.
5% ungültige Adresse kann hört sich groß an, aber wenn ich meine facebook-Freunde, ich denke, mehr als 5% von Ihnen niemals Ihre Konto, und ich wäre nicht überrascht, wenn die Adresse, die Sie verwendet, wenn Sie unterzeichnet ist jetzt ungültig.
Nutzer nicht immer eine E-Mail-Adresse, um die Nutzung Facebook. Sie können sich auch anmelden per SMS, obwohl es weit weniger Häufig.
In kurz -, FB wird nicht immer eine E-Mail-Adresse, so kann nicht dazu dienen es zu Ihrer app.
Versuchen:
Oder:
PROBLEME:
ALTERNATIVE:
Wenn Sie unbedingt brauchen, um den Benutzer zu Kontaktieren, aber Sie können nicht bekommen Ihre E-Mail-Adresse nSie können immer noch Ihre Facebook-E-Mail (jeder hat dieses E-Mail): "[email protected]".
Wenn der Benutzer einen POP-server wird er direkt erhalten Sie die E-Mail in GMail oder anderen, wenn er nicht erhalten Ihre E-Mail als private Nachricht. Der einzige Nachteil diese Methode ist, dass Ihre E-Mail muss "plain/text" und nicht "HTML".
array('req_perms' => 'email')
.Eins ist
Users don't always have to provide an email address in order to use Facebook(could have registered through mobile)
- wie erwähnt von Colm. Abgesehen von diesem-Bitte überprüfen Sie, dass, wenn der Benutzer hat auf jeden Fall gewährt Sie der
email
erweiterte Berechtigung oder es wurde nicht nachträglich gesperrt wurde. Eine überprüfung dieser könnten Sie die Berechtigungen verwenden, die api-Ich hatte ähnliches problem & ich fand die Ursache für dieses. Dieses problem tritt auf, für Benutzer, die nicht Ihre Primäre E-Mail-Adresse (Sie haben viele E-Mail-Adresse, aber Sie haben nicht darauf hingewiesen, das ist Ihre primäre E-Mail-Adresse) unter " Allgemeine Konto-Einstellung tab.
Versuchte ich mit solchen Konten auf verschiedenen bekannten Websites die Facebook login & auch Sie konnten nicht abgerufen werden die E-Mail-Adresse von solchen Konten.
So, das ist nicht das problem mit dem code(unter der Annahme u haben gefragt, für die Berechtigungen). Wir müssen nur, um solche Szenarien & lassen Sie die Benutzer wissen, dass wir nicht erhalten Ihre E-Mail-Adresse. Wie Klout funktioniert.
Dank
Zusätzlich zu dem, was @Jigar Jain oben schrieb, können die Benutzer tatsächlich deaktivieren Sie die E-Mail-Erlaubnis während das Zeichen Zufluss. Wenn das der Fall ist, seine/Ihre E-Mail-Adresse wird nicht zurückgegeben von Facebook.
Es ist bis zu Ihnen, zum umsetzen eine Logik, die macht, login fehlgeschlagen, wenn der Benutzer deaktiviert die E-Mail-Erlaubnis, um zu erzwingen Ihre Benutzer zu wählen, eine andere login-Methode, die garantieren, dass eine Rückkehr des Benutzers E-Mail-Adresse.