Spanish (Español) translation by Elías Nicolás (you can also view the original English article)
En este tutorial, aprenderá a usar Twitter API 1.1 y OAuth 2.0 para autenticar usuarios de su aplicación y publicar un tweet de prueba.
¿Por qué necesitamos un Framework para autenticación?
Para crear servicios que actúan en nombre de las cuentas de los usuarios y hacerla realmente segura y fácil de desarrollar, necesitamos tres cosas:
- Aplicación de Twitter
- REST API
- Acceso a la cuenta de usuario
Para unir las piezas en un mecanismo de trabajo, necesitamos un framework de autenticación. Como un estándar de Twitter, la API REST identifica las aplicaciones de Twitter y los usuarios que utilizan OAuth.
¿Qué es OAuth?
Según oauth.net, OAuth es:
Un protocolo abierto que permite la autorización segura en un método simple y estándar desde aplicaciones web, móviles y de escritorio.
OAuth es el marco de autorización más común hoy en día, y se utiliza en la mayoría de las aplicaciones y servicios web comunes, como GitHub, Google, Facebook y, por supuesto, Twitter.
Este framework permite a los usuarios concederle permiso para actuar en su nombre sin compartir la contraseña de la cuenta. Después de que el usuario haya dado permiso, OAuth le devolverá un token. Este símbolo por sí mismo concede acceso para realizar solicitudes en nombre del usuario.
Los tokens de Twitter no tienen un tiempo de caducidad, pero pueden llegar a ser inválidos después de que el usuario haya rechazado su aplicación. Además, la tripulación de Twitter puede suspender su aplicación si está excediendo los límites o realizando otras acciones que violen los Términos de la API. Puede revisar estos términos para obtener más información sobre violaciones específicas.
Crea tu aplicación
Como primer paso, necesitamos crear una nueva aplicación de Twitter. Creemos una nueva aplicación en la página application management.

Después de iniciar sesión, debe hacer clic en el botón Create New App y rellenar el formulario con los detalles de su aplicación: nombre, descripción, sitio web y URL de devolución de llamada.
¿Qué es la URL de devolución de llamada? Cuando los usuarios aceptan nuestra aplicación para usar su cuenta, el navegador los entregará a esta URL con el verificador de OAuth en GET. Y usaremos este verificador para obtener el token de acceso de usuario.

Aviso: No olvide reemplazar el sitio web y la URL de devolución de llamada con su dominio público cuando comparta su aplicación con usuarios reales.
Después de rellenar el formulario, puede firmar el Acuerdo del desarrollador y hacer clic en el botón Submit (Enviar) para crear su aplicación.

¡Felicitaciones! Ahora tiene acceso a una página donde puede ver los detalles y editar la configuración de su nueva aplicación, cambiar los permisos y administrar las claves y los tokens de acceso. Vaya a la pestaña Keys and Access Tokens y busque la Consumer Key y el Consumer Secret. Los utilizaremos en breve.
Empieza a programar
Elegir una libreria
Antes de comenzar a codificar, tenemos que elegir una libreria para trabajar con Twitter API y Oauth 2.0. Puede obtener una visión general de las bibliotecas existentes en la página de desarrolladores de Twitter. En este tutorial utilizaré TwitterOAuth como el más popular y fácil de usar. Podemos instalarlo desde la línea de comandos con Composer:
composer require abraham/twitteroauth
El archivo de configuración
Vamos a crear un nuevo archivo llamado config.php
para almacenar todos los datos estáticos. Especifique los siguientes detalles en su aplicación.
<?php return [ // 'consumer_key' => 'EPKXCv3tUsq9DoxwZy616Cy1o', 'consumer_secret' => 'UXnAeXkCZFIOnLVQCS4LFR7GsCTrOiU77OGSFL3dUoYZiTxU8x', // 'url_login' => 'http://localhost/twitter_login.php', 'url_callback' => 'http://localhost/twitter_callback.php', ];
Iniciar Script de inicio de sesión
Ahora cree un nuevo archivo llamado twitter_login.php e incluya Autoload de Composer, biblioteca de TwitterOAuth, inicie sesión e importe la configuración de nuestra aplicación desde el archivo de configuración.
<?php require_once 'vendor/autoload.php'; use Abraham\TwitterOAuth\TwitterOAuth; session_start(); $config = require_once 'config.php';
Solicitud de autenticación
En esta parte necesitamos solicitar al usuario que autorice nuestra aplicación. Para alcanzar este objetivo, crearemos un objeto de la clase TwitterOAuth, solicitaremos un token de la aplicación de la API de Twitter, obtendremos la URL de la página de autorización mediante este token y redirigiremos al usuario a esta página.
// create TwitterOAuth object $twitteroauth = new TwitterOAuth($config['consumer_key'], $config['consumer_secret']); // request token of application $request_token = $twitteroauth->oauth( 'oauth/request_token', [ 'oauth_callback' => $config['url_callback'] ] ); // throw exception if something gone wrong if($twitteroauth->getLastHttpCode() != 200) { throw new \Exception('There was a problem performing this request'); } // save token of application to session $_SESSION['oauth_token'] = $request_token['oauth_token']; $_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; // generate the URL to make request to authorize our application $url = $twitteroauth->url( 'oauth/authorize', [ 'oauth_token' => $request_token['oauth_token'] ] ); // and redirect header('Location: '. $url);
Anote que estamos guardando tokens de aplicación en la sesión, porque los necesitaremos en el siguiente paso.
Ahora puede ejecutar el script en el navegador y, si todo va bien, será redirigido a la página de la API de Twitter con algo como esto:

Se le redirigirá a la URL de devolución de llamada haciendo clic en el botón Autorizar la aplicación. Pero no tan rápido, primero necesitamos crear un script de devolución de llamada.
Obtener el token de usuario
Nuestro siguiente paso es crear una secuencia de comandos de devolución de llamada. Vamos a crear un nuevo archivo llamado twitter_callback.php
e incluir la biblioteca TwitterOAuth, el archivo de configuración y la sesión de inicio como lo hicimos en la parte anterior.
A continuación, comprobaremos si hemos recibido un parámetro verificador de autenticación de la API de Twitter. Si algo falta, vamos a redirigir al usuario para iniciar sesión de nuevo.
$oauth_verifier = filter_input(INPUT_GET, 'oauth_verifier'); if (empty($oauth_verifier) || empty($_SESSION['oauth_token']) || empty($_SESSION['oauth_token_secret']) ) { // something's missing, go and login again header('Location: ' . $config['url_login']); }
El siguiente paso es conectarse a la API de Twitter con el token de aplicación y solicitar un token de usuario mediante el verificador de OAuth:
// connect with application token $connection = new TwitterOAuth( $config['consumer_key'], $config['consumer_secret'], $_SESSION['oauth_token'], $_SESSION['oauth_token_secret'] ); // request user token $token = $connection->oauth( 'oauth/access_token', [ 'oauth_verifier' => $oauth_verifier ] );
Y ahora tiene el token de usuario almacenado en la variable $token
.
Cómo utilizar este Token
Podemos usar este token para actuar en nombre de la cuenta del usuario. Podemos almacenarla en la sesión o guardarla en la base de datos para administrar la cuenta de usuario la próxima vez sin solicitar permiso. Para conectarse a la API de Twitter con el token de usuario, sólo tiene que hacer esto:
$twitter = new TwitterOAuth( $config['consumer_key'], $config['consumer_secret'], $token['oauth_token'], $token['oauth_token_secret'] );
Como publicar un tweet
Para crear un nuevo tweet de la cuenta del usuario, necesitamos añadir un pequeño fragmento de código:
$status = $twitter->post( "statuses/update", [ "status" => "Thank you @nedavayruby, now I know how to authenticate users with Twitter because of this tutorial https://goo.gl/N2Znbb" ] ); echo ('Created new status with #' . $status->id . PHP_EOL);
También puede obtener detalles del estado de la respuesta de la API almacenada en la variable $status
.
Finalmente, estamos listos para probar nuestro script.

Conclusion
Como puede ver, crear una aplicación de Twitter no es tan difícil. Ahora tienes todas las características de la API a utilizar: se pueden crear nuevos tweets, subir imagenes y videos, gestión de amistades y así sucesivamente.
Tenga en cuenta que ahora puede recopilar tokens OAuth y tiene gran poder para actuar en nombre de sus usuarios. Pero con gran poder viene una gran responsabilidad—es por eso que necesita para manejar esta situación con gracia y servir a una experiencia de usuario de calidad.
Si tiene preguntas o comentarios, no dude en publicarlos en la sección de comentarios. Estaré esperando con interés e intentaré responder a cada uno de sus comentarios.
Lectura adicional y enlaces relacionados
Tenga en cuenta que he preparado un proyecto completo para este tutorial en GitHub, y usted puede echar un vistazo a él con un enlace en el lado derecho del sitio o utilizando este enlace.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post