Sou novo no OAuth e estou brincando com a API do Twitter. Consigo obter as credenciais de um usuário após a autenticação fazendo uma solicitação para http://api.twitter.com/1/account/verify_credentials.xml
. A resposta contém o ID do usuário, nome da tela, etc., mas não o ID do email.
É possível recuperar o ID de e-mail do usuário?
Atualizar
Acredito que o Facebook forneça essas informações se você solicitar especificamente permissões estendidas . Existe algo semelhante para o Twitter?
twitter
oauth
twitter-oauth
Manoj Govindan
fonte
fonte
Respostas:
O endereço de e-mail do usuário não pode ser recuperado por meio da API. Esta é uma decisão de design deliberada da equipe da API.
ATUALIZAÇÃO 18/08/2015:
É possível solicitar um endereço de e-mail dos usuários, mas isso exige que seu aplicativo esteja na lista de permissões. Consulte https://dev.twitter.com/rest/reference/get/account/verify_credentials para obter detalhes da chamada de API e este formulário para solicitar a lista de permissões de seu aplicativo.
fonte
Para OutsourceFactor , que é escrito em Python / Django, eu obtenho o nome de usuário via oAuth1, em seguida, construo um e-mail como "[email protected]", que é garantido como único em todo o Twitter. Em seguida, faço o hash para obter um UUID legal para ser usado e associado à minha conta de usuário local. A mesma coisa para o Yahoo. Google e Facebook usam oAuth2 e me fornecem o endereço de e-mail quando solicitados, o que é bom.
Para garantir várias associações sociais com uma única conta, eu permito associações de contas sociais SOMENTE depois que o usuário tiver criado uma conta localmente e estiver conectado.
Portanto, você deve primeiro criar uma conta (conta local) e, em seguida, usar qualquer um dos provedores de oAuth social para facilitar seus logins futuros. Este é o melhor retorno para o investimento do meu site.
De qualquer forma, você obtém alguma forma única de identificação no Twitter. Então apenas use. Você pode solicitar um endereço de e-mail mais tarde ou antes da associação.
fonte
O endereço de e-mail é ofuscado pelo Twitter em suas respostas OAuth. O que sempre foi um grande problema para as pessoas que desejam incluir uma função "Cadastre-se no Twitter".
Mais recentemente (início de 2015), o Twitter adicionou suporte a endereços de e-mail por meio de uma segunda chamada de serviço, mas sob certas condições de abuso.
https://dev.twitter.com/rest/reference/get/account/verify_credentials
Portanto, agora é possível, mas minha opinião é continuar a implementar um logon único OAuth every-provider-but-twitter. Eles devem ser boicotados até agirem normalmente, ou seja, como todos os outros provedores de OAuth.
fonte
No Android usando Fabric , solicito o endereço de e-mail do usuário assim:
Consulte http://docs.fabric.io/android/twitter/request-user-email-address.html
fonte
No meu caso, toda vez que recebo a resposta, recebo uma id de autenticação exclusiva para cada usuário e o mesmo para aquele usuário todas as vezes. Usei esse id para criar um email como [email protected] e verificar se já está no meu site (pela primeira vez não está) e depois registrar o usuário. Depois, se ele logar pela segunda vez, acabo de criar o e-mail novamente e verifico se já está lá. Com isso, não preciso fazer com que ele crie uma conta local primeiro e posso identificá-lo para fazer o login.
fonte
Aqui está o exemplo de como obter o e-mail do usuário do Twitter no Laravel, e em coditty.com você pode encontrar o exemplo completo usando Angular + Laravel
fonte
Eu obtive meu aplicativo iOS após colocar o aplicativo na lista de permissões. Verifique minha resposta aqui .
fonte
Adicione este código!
$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
Verifique o procedimento completo aqui .
fonte
Quem disse que você não pode obter e-mail dos usuários, a caixa de seleção “Solicitar endereços de e-mail dos usuários” está disponível nas permissões do aplicativo em apps.twitter.com . Os campos URL da Política de Privacidade e URL dos Termos de Serviço devem ser preenchidos nas configurações do aplicativo para que o acesso ao endereço de e-mail funcione. Se ativado, os usuários serão informados por meio da caixa de diálogo oauth / authorize que seu aplicativo pode acessar seus endereços de e-mail.
fonte