it-swarm.com.de

Gibt es eine Möglichkeit, die E-Mail-ID eines Benutzers zu erhalten, nachdem er seine Twitter-Identität mit OAuth überprüft hat?

Ich bin neu bei OAuth und habe mit der Twitter-API herumgespielt. Ich kann die Anmeldeinformationen eines Benutzers nach der Authentifizierung abrufen, indem Sie eine Anforderung an http://api.Twitter.com/1/account/verify_credentials.xml senden. Die Antwort enthält die Benutzer-ID, den Bildschirmnamen usw., jedoch nicht die E-Mail-ID. 

Kann die E-Mail-ID des Benutzers überhaupt abgerufen werden? 

Update 

Ich glaube, Facebook stellt diese Informationen bereit, wenn Sie ausdrücklich nach erweiterten Berechtigungen fragen. Gibt es etwas Ähnliches für Twitter?

85
Manoj Govindan

Die E-Mail-Adresse des Benutzers kann nicht über die API abgerufen werden. Dies ist eine bewusste Designentscheidung 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. Unter https://dev.Twitter.com/rest/reference/get/account/verify_credentials finden Sie Details zum API-Aufruf und diesem Formular , um eine Whitelist Ihrer App anzufordern.

106
DWRoelands

Für OutsourceFactor , das in Python/Django geschrieben ist, erhalte ich den Benutzernamen über oAuth1 und konstruiere dann eine E-Mail mit dem Namen "[email protected]", die garantiert eindeutig in Twitter ist. Dann hasse ich es, um eine Nice UUID zu erhalten, die ich verwenden und meinem lokalen Benutzerkonto zuordnen kann. Gleiches für Yahoo. Google und Facebook verwenden oAuth2 und geben auf Anfrage die E-Mail-Adresse Nice an. 

Um mehrere soziale Assoziationen mit einem einzigen Konto sicherzustellen, erlaube ich NUR soziale Kontenzuordnungen, nachdem der Benutzer lokal ein Konto erstellt hat 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 Knaller für meine Website. 

Auf jeden Fall erhalten Sie eine eindeutige ID-ID von Twitter. Also benutze es einfach. Sie können später oder vor der Vereinigung eine E-Mail-Adresse anfordern.

16
un33k

Die E-Mail-Adresse wird von Twitter in ihren OAuth-Antworten verschleiert. Was schon immer ein großes Problem für Leute war, die eine "Registrieren bei Twitter" -Funktion hinzufügen wollten.

In jüngster Zeit (Anfang 2015) hat Twitter die Unterstützung für E-Mail-Adressen durch einen zweiten Serviceanruf hinzugefügt, jedoch unter bestimmten, missbräuchlichen Bedingungen. 

https://dev.Twitter.com/rest/reference/get/account/verify_credentials

Es ist also jetzt möglich, aber ich bin der Meinung, dass jedes OAuth-Anbieter-aber-Twitter-Single-Sign-On weiterhin implementiert wird. Sie müssen boykottiert werden, bis sie sich normal verhalten. Ich meine, wie jeder andere OAuth-Anbieter.

3
Moonchild

Bei Android mit Fabric fordere ich die E-Mail-Adresse des Benutzers wie folgt an:

TwitterAuthClient authClient = new TwitterAuthClient();

authClient.requestEmail(session, new Callback<String>() {

    @Override
    public void success(Result<String> result) {
        // Do something with the result, which provides the email address
    }

    @Override
    public void failure(TwitterException exception) {
      // Do something on failure
    }
});

Siehe http://docs.fabric.io/Android/Twitter/request-user-email-address.html

3
Paul Muriithi

In meinem Fall erhielt ich jedes Mal, wenn ich die Antwort erhielt, eine eindeutige Authentifizierungs-ID für jeden Benutzer und 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 registrieren. Wenn er sich dann zum zweiten Mal anmeldet, erstelle ich die E-Mail und überprüfe, ob sie schon dort ist. Auf diese Weise muss ich nicht erst einen lokalen Account erstellen und kann ihn als Login identifizieren.

1
Mehedi Hasan

Hier ist das Beispiel, wie man Twitter-Benutzer-E-Mails in Laravel erhält, und auf coditty.com finden Sie das vollständige Beispiel mit Angular + Laravel

 // get token secret from db 
        $token = TwitterTokens::where('oauth_token', $request->input('oauth_token'))->first(); 


        // open Twitter connection
        $connection = new \Abraham\TwitterOAuth\TwitterOAuth(
                        $this->Twitter_consumer_key, 
                        $this->Twitter_secret, 
                        $request->input('oauth_token'), 
                        $token->oauth_token_secret// Twitter secret from DB
                        );

        // get acces token
        $access_token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $request->input('oauth_verifier')]); 

         // new TwitterOAuth instance to get email
        $twitterOAuth = new \Abraham\TwitterOAuth\TwitterOAuth( $this->Twitter_consumer_key, $this->Twitter_secret, $access_token['oauth_token'], $access_token['oauth_token_secret'] );

        // Let's get the user's info with email
        $twitterUser = $twitterOAuth->get('account/verify_credentials', ['include_entities' => 'false','include_email'=>'true','skip_status'=>'true',]);


        // output user object from Twitter in your Log file
        Log::info(['user'=>$twitterUser]);
1
Igor Simic

Wer hat gesagt, dass es nicht möglich ist ???

Ich habe in meiner iOS-App nach dem Whitelisting die App bekommen Überprüfen Sie meine Antwort hier .

1
NSPratik

Füge diesen Code hinzu!

$params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');

`$data = $connection->get('account/verify_credentials', $params); // get the data`

// getting Twitter user profile details $twt_id = $data->id; //Twitter user id $twt_email = $data->email; //Twitter user email

Vollständige Prozedur zur Kasse hier.

0
Pran

Wer sagt, dass Sie keine Benutzer-E-Mail erhalten können, das Kontrollkästchen "E-Mail-Adressen von Benutzern anfordern" ist unter den App-Berechtigungen auf apps.Twitter.com verfügbar. Die Felder für die URL der Datenschutzrichtlinie und die Nutzungsbedingungen für die Servicebedingungen müssen in den App-Einstellungen ausgefüllt werden, damit die E-Mail-Adresse funktionieren kann. Wenn aktiviert, werden Benutzer über das Dialogfeld oauth/authorize informiert, dass Ihre App auf ihre E-Mail-Adresse zugreifen kann.

0