Jestem nowy w OAuth i bawiłem się API Twittera. Jestem w stanie pobrać poświadczenia użytkownika po uwierzytelnieniu, wysyłając żądanie do http://api.twitter.com/1/account/verify_credentials.xml
. Odpowiedź zawiera identyfikator użytkownika, nazwę użytkownika itp., Ale nie zawiera identyfikatora e-mail.
Czy w ogóle można odzyskać identyfikator e-mail użytkownika?
Aktualizacja
Uważam, że Facebook udostępnia te informacje, jeśli wyraźnie poprosisz o rozszerzone uprawnienia . Czy jest coś podobnego na Twitterze?
twitter
oauth
twitter-oauth
Manoj Govindan
źródło
źródło
Odpowiedzi:
Nie można pobrać adresu e-mail użytkownika za pośrednictwem interfejsu API. Jest to celowa decyzja zespołu ds. API.
AKTUALIZACJA 2015.08.18:
Możesz poprosić użytkowników o adres e-mail, ale wymaga to umieszczenia Twojej aplikacji na białej liście. Zobacz https://dev.twitter.com/rest/reference/get/account/verify_credentials, aby uzyskać szczegółowe informacje na temat wywołania interfejsu API i tego formularza, aby poprosić o dodanie do białej listy aplikacji.
źródło
W przypadku OutsourceFactor , który jest napisany w Pythonie / Django, otrzymuję nazwę użytkownika za pośrednictwem oAuth1, a następnie konstruuję wiadomość e-mail jako „nazwa_uż[email protected]”, która jest unikalna na całym Twitterze. Następnie haszuję go, aby uzyskać ładny identyfikator UUID, który ma być używany i powiązany z moim lokalnym kontem użytkownika. To samo dotyczy Yahoo. Google i Facebook używają oAuth2 i na żądanie podają mi adres e-mail, co jest miłe.
Aby zapewnić wiele powiązań społecznościowych z jednym kontem, zezwalam na skojarzenia kont społecznościowych TYLKO po tym, jak użytkownik lokalnie utworzy konto i jest zalogowany.
Musisz więc najpierw utworzyć konto (konto lokalne), a następnie możesz użyć dowolnego dostawcy społecznościowej OAuth, aby ułatwić sobie przyszłe logowanie. To najlepsza okazja dla mojej witryny.
W każdym razie otrzymujesz unikalną formę dowodu tożsamości z Twittera. Więc po prostu go użyj. Możesz poprosić o adres e-mail później lub przed skojarzeniem.
źródło
Adres e-mail jest zaciemniany przez Twittera w ich odpowiedziach OAuth. Co zawsze było wielkim problemem dla osób, które chciały włączyć funkcję „Zarejestruj się na Twitterze”.
Niedawno (początek 2015 r.) Twitter dodał obsługę adresu e-mail poprzez drugie wezwanie serwisowe, ale pod pewnymi, nadużywanymi warunkami.
https://dev.twitter.com/rest/reference/get/account/verify_credentials
Więc teraz jest to możliwe, ale moja opinia jest taka, aby kontynuować wdrażanie pojedynczego logowania OAuth dla każdego dostawcy oprócz Twittera. Muszą być bojkotowane, dopóki nie będą działać normalnie, mam na myśli każdego innego dostawcę OAuth.
źródło
W Androidzie korzystającym z Fabric proszę o adres e-mail użytkownika w następujący sposób:
Zobacz http://docs.fabric.io/android/twitter/request-user-email-address.html
źródło
W moim przypadku za każdym razem, gdy otrzymuję odpowiedź, otrzymałem unikalny identyfikator uwierzytelnienia dla każdego użytkownika i za każdym razem taki sam dla tego użytkownika. Użyłem więc tego identyfikatora, aby utworzyć wiadomość e-mail, taką jak [email protected] i sprawdzić, czy jest już w mojej witrynie (za pierwszym razem nie ma), a następnie zarejestrować użytkownika. Następnie, jeśli zaloguje się po raz drugi, ponownie tworzę wiadomość e-mail i sprawdzam, czy już tam jest. Dzięki temu nie muszę najpierw zmuszać go do utworzenia konta lokalnego i mogę go zidentyfikować, aby się zalogować.
źródło
Oto przykład, jak uzyskać adres e-mail użytkownika Twittera w Laravel, a na coditty.com możesz znaleźć pełny przykład przy użyciu Angular + Laravel
źródło
Mam aplikację na iOS po dodaniu aplikacji do białej listy. Sprawdź moją odpowiedź tutaj .
źródło
Dodaj ten kod!
$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
Pełna procedura kasy tutaj .
źródło
Kto powiedział, że nie możesz otrzymywać e-maili od użytkowników, pole wyboru „Żądaj adresów e-mail od użytkowników” jest dostępne w uprawnieniach aplikacji na apps.twitter.com . Adres URL Polityki prywatności i Adres URL Warunków korzystania z usługi należy wypełnić w ustawieniach aplikacji, aby dostęp do adresu e-mail działał. Jeśli ta opcja jest włączona, użytkownicy zostaną poinformowani za pośrednictwem okna dialogowego oauth / authorize, że Twoja aplikacja może uzyskać dostęp do ich adresów e-mail.
źródło