BLOG DE DISEÑO WEB CORUÑA

Un poco de todo, recursos, tutoriales, noticias, anuncios...

Validación de Usuarios con OAUTH de Twitter con PHP

06/MAY/2011 11.088 visitas Ver comentarios
Validación de Usuarios con OAUTH de Twitter con PHP

ADVERTENCIA: Este artículo tiene más de 6 meses de antigüedad. Puede que esta información ya se encuentre obsoleta o haya nuevas y mejores opciones.

El siguiente es un ejemplo de como puedes utilizar un sistema de autenticación de usuarios mediante su cuenta de Twitter. Realmente no le veo mucha utilidad en sistemas con registros de usuarios pero sí para comentarios u otros sistemas que no necesiten más datos de los que puede facilitarte twitter.

Todo comienza con una serie de pasos que detallo a continuación. Donde la clave de todo es crear una aplicación en Twitter que hará de lanzadera, obtener unas key del centro de developers de twitter y utilizar alguna de las librerías que Twitter mismo te ofrece.

En este caso usaremos una que utiliza json y, luego de loguearnos mostraremos por pantalla algunos datos públicos de tu cuenta de Twitter.

Importante. La aplicación que creé en Twitter para esta demo, sólo tiene permisos de lectura, es decir, que mi aplicación no hará que me sigas (pero si quieres seguirme, mi twitter es @martinigleu), no publicará tweets en tu timeline, no te robará amigos ni la cuenta bancaria (es broma) ni nada más que obtener los mismos datos que podría obtener mirando tu perfil en twitter (el cual es público), por lo que la puedes probar sin miedos. Tampoco almaceno dato alguno de los que obtengo.

Pasos previos:
Si deseas que los usuarios de tu web se logueen con twitter debes seguir un par de pasos muy importantes.

  • Tu hosting debe tener la extensión "extension=php_curl.dll" activada en la configuración de PHP. Puedes consultarlo haciendo un phpinfo()
  • Obtener la $consumer_key de Twitter y la $consumer_secret. Para esto, debes registrar una aplicación en Twitter, desde este enlace.
  • Importante: al registrar tu aplicación en Twitter, debes indicarle la url de retorno, es decir, una vez logueado en Twitter, éste redirigirá al usuario a la dirección que indiques.
  • Permisos: Twitter te preguntará que clase de permisos requieres para tu aplicación. Puede ser de lectura o lectura/escritura. Si es lectura, el sistema solo podrá recoger de Twitter tu nombre, ubicación y número de seguidores. Si es de lectura/escritura, podrá, además de todo esto, publicar tweets en tu nombre.
  • Descargar la librería de login para Twitter de https://dev.twitter.com/pages/libraries#php (la usada en este ejemplo está en https://github.com/jmathai/twitter-async)

Vamos a ello.
Realmente es muy fácil y se obtienen muchísimos datos, hasta los colores de fondo que utiliza, pero si quieres ver todo, basta con hacer un print_r($user) y verás lo completo que es el array que te devuelve Twitter.

Demo.
Lo dicho, prueba la demo que te dejo aquí... no te costará nada ;)

Código 1 - PHP
session_start();
include 'lib/EpiCurl.php';
include 'lib/EpiOAuth.php';
include 'lib/EpiTwitter.php';
$consumer_key = '';
$consumer_secret = '';
$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);
$error = null;
$login = '<a href="' . $twitterObj->getAuthorizationUrl() . '"><img src="https://si0.twimg.com/images/dev/buttons/sign-in-with-twitter-l.png"/></a>';
if (isset($_GET['oauth_token']) || ( isset($_SESSION['oauth_token']) && isset($_SESSION['oauth_token_secret']) )){
//Acceso
if (!isset($_SESSION['oauth_token']) || !isset($_SESSION['oauth_token_secret'])){
//Viene de twitter
$twitterObj->setToken($_GET['oauth_token']);
$token = $twitterObj->getAccessToken();
$_SESSION['oauth_token'] = $token->oauth_token;
$_SESSION['oauth_token_secret'] = $token->oauth_token_secret;
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
} else {
//Ya nos dio acceso
$twitterObj->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
}
$user = $twitterObj->get_accountVerify_credentials();
$datos = "<strong>Tu nombre es:</strong><br >$user->name (@$user->screen_name)<br /><br /><strong>Tienes:</strong><br />$user->followers_count seguidores<br /><br /><strong>Sigues a:</strong><br />$user->friends_count amigos<br /><br /><strong>Te encuentras en:</strong><br />$user->location<br /><br /><strong>Tu foto es:</strong><br /><img src='$user->profile_image_url' /><br /><br /><strong>Tu descripción es:</strong><br />$user->description<br /><br /><strong>Tu último Tweet fue:</strong><br />".$user->status["text"]."<br /><br />";
} elseif (isset($_GET['denied'])){
$error = 'Debes permitir acceso a tu cuenta de twitter';
}
Código 2 - PHP
if (isset($_GET['oauth_token'])
                        || ( isset($_SESSION['oauth_token'])
                                && isset($_SESSION['oauth_token_secret']) )){

                                    echo $datos;
                                }
                                else {
                                    echo $login;
                                }

                        echo $error;

Acerca del Autor...

Macadia, es una agencia de Diseño Web Coruña, especializada en maquetación css y desarrollo de páginas web a medida con más de 21 años de experiencia en el desarrollo de páginas web profesionales. Si te ha gustado este artículo, por favor, ayúdanos a difundirlo compartiéndolo con tus amigos y contactos en las distintas redes sociales que utilices. ¡Muchas gracias!

Los comentarios han sido desactivados momentaneamente a la espera de que Disqus adapte su plataforma a la próxima RGPD que entra en vigor desde el 25/05/2018