Enviar un tweet desde Laravel usando Twitter API

Enviar un tweet automáticamente desde una aplicación Laravel es relativamente sencillo. Twitter nos ofrece una API para poder integrarla en nuestros proyectos.

Podemos utilizar la API integrándola en nuestra aplicación desde cero o podemos aprovechar el trabajo que otros han hecho. Hay una librería desarrollada por Jonathan Thuau que nos puede ahorrar mucho trabajo y funciona muy bien.

Crear una nueva aplicación en Twitter

El primer paso es crear una nueva “aplicación” en Twitter. Visita la web:

https://apps.twitter.com

Entra en tu cuenta si aún no lo has hecho y pincha en el botón “Create New App”. Rellena todos los campos excepto “Callback URL” y haz click en “Create your Twitter application”.

Una vez creada entra en la pestaña que dice “Keys and Access Tokens”. En esta pestaña tienes todos los datos que necesitas para configurar tu aplicación en Laravel.

Como último paso pincha en el botón que dice “Create my Access Token and Token Secret”.

De todos estos datos necesitarás los siguientes para más adelante (deja esta ventana del navegador abierta para luego):

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

Instalar la librería Laravel Twitter

Para instalar la librería Laral Twitter Library abre tu fichero composer.json y añade "thujohn/twitter": "~2.0" en la sección require:

    "require": {
        "thujohn/twitter": "~2.0"
    },

NOTA: Tienes que añadir esa línea en la sección require que ya existe, no crees una nueva seción require.

Abre un terminal y entra en la carpeta de tu proyecto Laravel y ejecuta el comando:

composer update

NOTA: Si ejecutas este comando fuera de tu carpeta de proyecto Laravel composer update no mostrará errores pero no habrás instalado la librería.

Para comprobar que se ha instalado correctamente mira si existe la carpeta:

vendor/thujohn/twitter

Añadir los providers

El siguiente paso es editar el fichero config/app.php y añadir una línea al final del array 'providers':

'providers' => [
    ...
    Thujohn\Twitter\TwitterServiceProvider::class,
]

Y por último añadir un alias para poder usar el Facade. Añádelo al final del array 'aliases':

'aliases' => [
    ...
    'Twitter' => 'Thujohn\Twitter\Facades\Twitter',
]

Configurar Laravel Twitter (Laravel 5)

Ahora copia el fichero config.php que viene por defecto en el paquete usando el comando Artisan:

php artisan vendor:publish

Si la versión de Laravel que usar es la 4 prueba con éste:

php artisan vendor:publish thujohn/twitter

Ahora abre el fichero .env en la carpeta raíz de tu proyecto y añade las líneas:

TWITTER_CONSUMER_KEY = 
TWITTER_CONSUMER_SECRET = 
TWITTER_ACCESS_TOKEN = 
TWITTER_ACCESS_TOKEN_SECRET =

Aquí tienes que copiar los datos de tu aplicación Twitter que hemos creado en el primer paso.

Con esto ya tienes todo listo y puedes empezar a juguetear.

Ejemplo

Enviar un Tweet:

Route::get('/enviar_tweet', function()
{
    return Twitter::postTweet(['status' => 'Mi primer tweet desde Laravel', 'format' => 'json']);
});

Para probarlo entra en la url /enviar_tweet de tu web:

http://www.miweb.com/enviar_tweet

Entra en tu Twitter y, si todo ha ido bien, podrás ver el tweet publicado.

Autor:
Nivel: Intermedio
Palabras clave:
Fecha publicado:
Fecha actualizado: 19-08-2016

Otros capítulos de la misma serie

Este capítulo es parte de la serie: Laravel pearls.

Y muchos más en preparación.

Disponible en los planes: Laravel hero