Hace pocos días me vi en la necesidad de buscar la forma de
enviar tweets desde PHP. Empecé a buscar y encontré varias clases que implementaban lo que necesitaba, pero finalmente me decanté por una llamada
Twitter for PHP.
Se trata de una pequeña librería de PHP con funciones muy interesantes para manejar una cuenta de Twitter y además lleva soporte para el
protocolo OAuth. Si buscáis información en google encontraréis mucha información sobre este protocolo pero os dejo este
enlace que lo explica bastante bien. La librería
Twitter for PHP requiere como mínimo la versión
PHP 5.0 y tener instalada la librería
cURL.
Primeros pasos
Para utilizar esta librería lo primero que tendremos que hacer es
descargarla desde su
repositorio en
GitHub. En el repositorio encontraremos ejemplos de lo que veremos en este mismo post.
A continuación deberemos dar de alta una cuenta de Twitter, si no la tenemos, e ir a
http://dev.twitter.com/apps para
registrar una aplicación. Una vez creada tienes que ir a la pestaña
Key and Access Tokens y darle clic en la parte inferior de la ventana a
Create my access token. Con esto ya tendremos los cuatro parámetros que necesitamos:
consumer key,
consumer secret,
access token y
access token secret.
Con todos estos datos ya estamos preparados para poder
crear un objeto usando la librería:
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
Enviar
El envío de un tweet lo realizaremos con el método
post(). El mensaje debe ir codificado en
UTF-8 y además le podremos añadir una
imagen al tweet:
$twitter->send('Mi primer tweet');
$twitter->send('Mi primer tweet con imagen', $imageFile);
Ejemplo completo
Veamos ahora un
ejemplo completo para enviar un tweet:
// Incluimos la librería descargada
require_once 'src/twitter.class.php';
// Definimos cuatro constantes con nuestros datos de Twitter
define(CONSUMER_KEY, 'myconsumerkey');
define(CONSUMER_ACCESS, 'myconsumeraccess');
define(ACCESS_TOKEN, 'myaccesstoken');
define(ACCESS_TOKEN_SECRET, 'myaccesstokensecret');
// Creamos el objeto
$twitter = new Twitter(CONSUMER_KEY, CONSUMER_ACCESS, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
// Enviamos manejando el posible error
try {
$tweet = $twitter->send('Mi primer tweet');
} catch (TwitterException $e){
echo $e->getMessage());
}