5 votes

Comment obtenir l'adresse électronique d'un utilisateur de Twitter avec l'API de Twitter ?

Je veux mettre un plug-in sur mon site web pour "se connecter avec twitter", et mon site web a besoin de récupérer le twitterID et l'email de l'utilisateur après que celui-ci ait autorisé mon application twitter à accéder à ses données. J'ai regardé les documents de développement de Twitter, mais il semble que tout tourne autour d'OAuth avec des exemples compliqués. Existe-t-il un moyen simple de faire cela ? J'ai déjà mis le même genre de plugin pour facebook, et c'est très simple. Merci !

0voto

Irshu Points 3601

Twitter ne fournit pas l'adresse électronique, c'est pourquoi de nombreux sites web utilisant OAuth n'implémentent pas Twitter ; car l'adresse électronique de l'utilisateur fait partie du processus d'enregistrement.

0voto

adnan Points 844

Il n'y a aucun moyen d'obtenir un email par twitter, twitter ne fournit pas d'email dans la réponse api.

voir le lien officiel de l'api twitter :

0voto

Je travaille sur C#.Net et j'ai utilisé l'API Tweetinvi, elle est facile à utiliser et possède une bonne documentation.

Pour répondre à votre question, il est possible d'obtenir l'email de l'utilisateur et toutes les données.

1er : Vous devez créer votre application Twitter sur "apps.twitter.com" et l'enregistrer. Ensuite, dans la gestion de l'application, vous trouverez un onglet "Permission" et à la fin de la page, il y a une case à cocher qui indique si vous avez besoin des informations de l'email. Vous devrez fournir un lien vers vos conditions de confidentialité afin que l'utilisateur puisse les lire et accepter de partager ces informations avec votre application. https://google.com mais il est recommandé de fournir un lien valide.

Et c'est tout. Dans le code, il suffit d'authentifier l'utilisateur et d'obtenir les données dont vous avez besoin.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tweetinvi;
using Tweetinvi.Models;

namespace APIS
{
    public class TwitterConfig
    {
        IAuthenticationContext authenticationContext;

        /// <summary>
        /// Le indica a twitter que va a hacer una consulta de crendenciales. Esta consulta va a generar un PIN en caso de que sea correcto
        /// y el usuario tiene que digitar el pin.
        /// </summary>
        public void RequestForCredentials()
        {
            var appCredentials = new TwitterCredentials("CONSUMER-KEY", "CONSUMER-SECRET"); //GET THE CONSUMER INFORMATION ON THE TWITTER APP MANAGEMENT

            authenticationContext = AuthFlow.InitAuthentication(appCredentials);

            //This opens a web-browser and asks to the twitter client 
            //to accept the terms, and twitter gives a code and the user
            // have to introduce it on the app (use the AuthByPin(String pin) method )
            //Thats the PIN for auth the user and then get the data
            Process.Start(authenticationContext.AuthorizationURL);
        }

        /// <summary>
        /// Metodo que solicita un PIN que un usuario de Twitter al aceptar las condiciones se le brindó y este lo introdujo en la app
        /// para ser autenticado.
        /// </summary>
        /// <param name="pin">PIN del usuario</param>
        /// <returns>IAuthenticatedUser devuelve el usuario autenticado y con todos los datos.</returns>
        public IAuthenticatedUser AuthByPin(String pin) 
        {
            try
            {
                // Con este código PIN ahora es posible recuperar las credenciales de Twitter 
                var userCredentials = AuthFlow.CreateCredentialsFromVerifierCode(pin, authenticationContext);

                // Use las credenciales del usuario en su aplicación 
                Auth.SetCredentials(userCredentials);

                var user = User.GetAuthenticatedUser();
                return user; 
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw new ApplicationException("Problema al autenticar.", e);
            }
        }
    }
}
</code>

Si vous avez des questions, posez-les-moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X