Cómo autenticar usuarios con Twitter OAuth
Os traemos este breve tutorial para aprender a autenticar usuarios con Twitter OAtuh 2.0, en este caso, emplearemos Laravel 7 como Framework, pero serviría cualquier otro Framework PHP o “PHP a pelo”.
Al terminar este tutorial tu aplicación podrá autenticar a un usuario de Twitter y publicar un tweet en su nombre y otras muchas cosas. Ésto último es posible gracias a la Twitter API 1.1.
Para nuestro ejemplo, haremos que tu aplicación haga Retweet a un tweet mio. 👇👇👇👇
Me haría ilusión 😘 que no cambiases ese comportamiento la primera vez para que hagas RT a mi tweet, que será éste de abajo; así, por cada RT sabremos que una persona ha seguido este tutorial. 😁
Antes de empezar este tutorial es necesario que te asegures de tener listo lo siguiente:
OAuth es un protocolo abierto y estándar para autenticación de aplicaciones multidispositivo.
Cuando das al típico botón “Conectarme con Google”, o con Github, o con Facebook, etc… estás usando este tipo de autentificación de usuario.
Sirve para que una aplicación haga cosas en nombre de un usuario en otra aplicación. Es así como puedes programar Tweets desde Hootsuite por ejemplo.
Muchas de estas acciones ya hay aplicaciones en internet que las hacen, podrías por ejemplo:
Como ves, otorga tanto poder sobre la cuenta del usuario como te esté dispuesto a dar, así que úsalo con cuidado.
Los token no caducan hasta que el usuario no elimina la aplicación de su cuenta, por lo que se pueden almacenar para volver a utilizar.
Entramos en Twitter Developers.
Arriba a la derecha hay un botón de crear app. Si no tienes cuenta de desarrollador ese botón estará deshabilitado y deberás pedir que te den permisos de desarrollador.
Rellena todos los campos obligatorios y vamos a centrarnos en algunos que vamos a necesitar ahora:
Estas dos urls son importantes porque son a dónde la aplicación devolverá el tráfico. Debes apuntar a la url de tu instalación, si estás en un servidor local con un dominio como localhost, pon ese, simplemente asegúrate de cambiarlo aquí antes de subirlo a producción.
Una vez creada tendremos tendremos una vista con “App details”, “Keys and Tokens” y “Permissions”. Generamos los tokens y los copiamos. Nos interesan API Key y API Key Secret. Los copiamos y guardamos.
Ahora vamos a Access permission y seleccionamos el tipo de acciones que va a realizar nuestra aplicación en nombre del usuario. En este caso hacer un retweet se considera escribir así que seleccionamos:
Read and write.
Muy bien, ya tienes tu aplicación lista.
Antes de nada aclarar que no vamos a vincular los usuarios de Laravel con Twitter ni nada por el estilo. Vamos a hacer una aplicación mínima para hacer un retuit a un tweet.
Lo primero que vamos a hacer es instalar la librería más popular para interactúar con la API de Twitter con PHP, TwitterOAuth de Abraham
La instalamos con Composer:
composer require abraham/twitteroauth
Con artisan o manualmente crea un controlador, aquí con artisan:
php artisan make:controller TwitterController
Deberías tener algo así:
<?php
namespace App\Http\Controllers;
use Abraham\TwitterOAuth\TwitterOAuth;
use Illuminate\Support\Facades\Config;
use Illuminate\Http\Request;
class TwitterController extends Controller
{
}
En el archivo .env y example.env añadimos las siguientes líneas con los datos de vuestra aplicación de Twitter:
CONSUMER_KEY= CONSUMER_SECRET= URL_LOGIN= URL_CALLBACK=
En el .env pondremos los datos que obtuvimos al crear la aplicación.
Para tomar en Laravel las constantes del .env debemos crear el archivo en config/twitter.php con el siguiente contenido.
Reemplazamos el código del controlador TwitterController por el siguiente código:
Creamos las rutas para los dos métodos que acabamos de crear, tienen que corresponderse con las urls que pusiste en la aplicación.
Route::get('/twitter_login/', 'TwitterController@twitter_login');
Route::get('/twitter_callback/', 'TwitterController@twitter_callback');
Hemos creado dos rutas: “twitter_login” y “twitter_callback“: la primera es la que redirige a Twitter para objeter autorización del usuario; la segunda es la que recoge el token ya aprobado y hace el retweet.
Por último “twitter_callback“, en el caso de que no tenga autorización correcta, devuelve al usuario a la pantalla de login.
Aquí tienes el código completo del tutorial terminado: https://github.com/faustorm/laravel-twitter-oauth
Para escribir este tutorial me he basado en éste de Anton Bagaiev en Tutsplus, así que le dejo un enlace “dofollow”.
“OpenAI lanza Instant Checkout: ahora puedes comprar desde ChatGPT, con soporte para más de un…
¿Sigues atrapado en los SaaS tradicionales? ¡Es hora de despertar! AI Tailorware está cambiando las…
Recientemente, el expresidente Donald Trump ha dado un giro al comercio electrónico internacional con nuevas…
A veces WordPress tiene fama de ser “para amateurs”... y oye, que sí, que hay…
Hoy te traigo un artículo del compañero (aunque ya nunca escribe, ejem) y CEO de…
Si quieres competir en el mundo digital de hoy en día, donde las compras no…
Ver comentarios
hola!, gracias por el articulo.
He seguido los pasos. Pero como puedo probar esto?
el TWITTER_TOKEN y el TWITTER_TOKEN_SECRET_TOKEN donde los meto? los obtiene ambos al crear la instancia de TwitterOAuth?
Estoy probando de postman y me devuelve 200?
y me retorna un 1
gracias!
Hola Damián,
no sé si he entendido bien tu duda.
Cuando sigues esta guía estarás utilizando una APP para obtener dos token, que creo que son los que tú llamas TWITTER_TOKEN y TWITTER_TOKEN_SECRET.
Esos Token los puedes usar junto con el APP_TOKEN y APP_SECRET que usaste para obtenerlos para hacer cosas con la API.
Para que lo pruebes se me ocurre que postees un tweet, puedes hacer fácilmente con esta documentación de Twitter: https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update
Lanza los datos contra https://api.twitter.com/1.1/statuses/update.json
Siguiendo alguno de sus ejemplos.
Saludos