Ich bin neu bei OAuth und habe mit der Twitter-API herumgespielt. Ich kann die Anmeldeinformationen eines Benutzers nach der Authentifizierung abrufen, indem ich eine Anfrage an stelle http://api.twitter.com/1/account/verify_credentials.xml
. Die Antwort enthält die Benutzer-ID, den Bildschirmnamen usw., jedoch nicht die E-Mail-ID.
Ist es überhaupt möglich, die E-Mail-ID des Benutzers abzurufen?
Aktualisieren
Ich glaube, Facebook stellt diese Informationen zur Verfügung, wenn Sie ausdrücklich erweiterte Berechtigungen anfordern . Gibt es etwas Ähnliches für Twitter?
twitter
oauth
twitter-oauth
Manoj Govindan
quelle
quelle
Antworten:
Die E-Mail-Adresse des Benutzers kann nicht über die API abgerufen werden. Dies ist eine bewusste Entwurfsentscheidung des API-Teams.
UPDATE 2015.08.18:
Es ist möglich, eine E-Mail-Adresse von Benutzern anzufordern, jedoch muss Ihre App auf der Whitelist stehen. Weitere Informationen zum API-Aufruf und in diesem Formular zum Anfordern der Whitelist Ihrer App finden Sie unter https://dev.twitter.com/rest/reference/get/account/verify_credentials .
quelle
Für OutsourceFactor , das in Python / Django geschrieben ist, erhalte ich den Benutzernamen über oAuth1 und erstelle dann eine E-Mail mit dem Namen "[email protected]", die garantiert auf Twitter eindeutig ist. Dann habe ich es gehasht, um eine nette UUID zu erhalten, die verwendet und meinem lokalen Benutzerkonto zugeordnet werden kann. Gleiches gilt für Yahoo. Google und Facebook verwenden oAuth2 und geben mir auf Anfrage die E-Mail-Adresse, was sehr nett ist.
Um mehrere soziale Assoziationen mit einem einzigen Konto sicherzustellen, erlaube ich soziale Kontoassoziationen NUR, nachdem der Benutzer lokal ein Konto erstellt und angemeldet ist.
Sie müssen also zuerst ein Konto erstellen (lokales Konto), dann können Sie einen der sozialen oAuth-Anbieter verwenden, um Ihre zukünftigen Anmeldungen zu vereinfachen. Dies ist der beste Preis für meine Website.
Wie auch immer, Sie erhalten eine einzigartige Form der ID von Twitter. Also benutze es einfach. Sie können später oder vor dem Verein nach einer E-Mail-Adresse fragen.
quelle
Die E-Mail-Adresse wird von Twitter in ihren OAuth-Antworten verschleiert. Das war schon immer ein großes Problem für Leute, die eine "Bei Twitter registrieren" -Funktion einbinden möchten.
In jüngerer Zeit (Anfang 2015) hat Twitter die Unterstützung von E-Mail-Adressen durch einen zweiten Serviceabruf hinzugefügt, jedoch unter bestimmten, missbrauchten Bedingungen.
https://dev.twitter.com/rest/reference/get/account/verify_credentials
Jetzt ist es also möglich, aber ich bin der Meinung, dass weiterhin ein OAuth-Single-Sign-On für jeden Anbieter außer Twitter implementiert wird. Sie müssen boykottiert werden, bis sie normal handeln. Ich meine, wie jeder andere OAuth-Anbieter.
quelle
In Android mit Fabric fordere ich die E-Mail-Adresse des Benutzers wie folgt an:
Siehe http://docs.fabric.io/android/twitter/request-user-email-address.html
quelle
In meinem Fall habe ich jedes Mal, wenn ich die Antwort erhalte, eine eindeutige Authentifizierungs-ID für jeden Benutzer und jedes Mal dieselbe für diesen Benutzer. Also habe ich diese ID verwendet, um eine E-Mail wie [email protected] zu erstellen und zu überprüfen, ob diese bereits auf meiner Website vorhanden ist (zum ersten Mal nicht), und dann den Benutzer zu registrieren. Wenn er sich dann zum zweiten Mal anmeldet, erstelle ich die E-Mail erneut und überprüfe, ob sie bereits vorhanden ist. Dadurch muss ich ihn nicht erst dazu bringen, ein lokales Konto zu erstellen, und kann ihn identifizieren, um sich anzumelden.
quelle
Hier ist das Beispiel, wie Sie E-Mails von Twitter-Benutzern in Laravel erhalten. Auf coditty.com finden Sie das vollständige Beispiel mit Angular + Laravel
quelle
Ich habe meine iOS-App aufgerufen, nachdem ich die App auf die Whitelist gesetzt habe. Überprüfen Sie meine Antwort hier .
quelle
Fügen Sie diesen Code hinzu!
$params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');
// getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email
Kasse vollständige Prozedur hier .
quelle
Wer sagt, dass Sie keine Benutzer-E-Mails erhalten können ? Das Kontrollkästchen "E-Mail-Adressen von Benutzern anfordern" ist unter den App-Berechtigungen auf apps.twitter.com verfügbar . Die URL-Felder für Datenschutzrichtlinien und Nutzungsbedingungen müssen in den App-Einstellungen ausgefüllt werden, damit der Zugriff auf die E-Mail-Adresse funktioniert. Wenn diese Option aktiviert ist, werden Benutzer über den Dialog " oauth / authorize " darüber informiert, dass Ihre App auf ihre E-Mail-Adresse zugreifen kann.
quelle