API de Twitter, PHP y cURL

03 de marzo de 2010
Valoración del artículo:
Hacemos un primer script PHP que se conecta con el API de Twitter y accede a la información por medio de la librería cURL.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
En el artículo anterior ofrecimos una introducción al API de Twitter y cómo tenemos que utilizar la librería cURL para acceder a los datos que hay en este sistema de microblogging. Eran sólo unas pequeñas informaciones para entrar en materia, pero merece la pena conocerlas antes de ponerse a hacer cosas más importantes. Aprendimos además a conectar con Twitter por medio de línea de comandos, y el comando curl, pero nuestro objetivo es hacer scripts PHP que consuman esa información y la muestren en una página web.

En este artículo procuraremos mantener las cosas sencillas, pero ya veremos un poquito de código PHP. Simplemente vamos a hacer un script PHP que conecte con el API Twitter, por medio de las funciones cURL de PHP y muestre los datos recogidos en pantalla, sin ningún formato en especial.

Quizás, si nunca hemos programado con cURL, nos pueda parecer un poco complejo este script, pero realmente no debemos preocuparnos porque más adelante mostraremos un método mucho más sencillo para trabajar con el API de Twitter sin tener que aprender cURL. En cualquier caso, pensemos que con cURL vamos a acceder a un contenido de texto que está en una URL, por lo que el mecanismo será más o menos similar que el que podemos conocer en el trabajo con ficheros de texto.

Nota: Para acceder a una referencia completa de las funciones de PHP para trabajo con cURL podemos consultar la documentación de PHP relativa a cURL.

Por supuesto, nuestro PHP tiene que disponer de compatibilidad con cURL, algo que es bastante probable, pero que no siempre es así. Si tenemos un servidor de pruebas PHP instalado en nuestro ordenador local en Windows, podemos añadir compatibilidad con cURL siguiendo las guías que ofrecen esta FAQ: Cómo instalar cURL en PHP en Xampp, pues, aunque nuestro PHP no esté instalado con Xampp, la solución puede ser similar. Si tenemos un servicio de Hosting donde, preguntar al departamento de soporte de vuestro proveedor cómo instalar cURL.

Script PHP y cURL para acceder a Twitter

El primer paso en este primer script es iniciar una nueva sesión de cURL desde PHP.

$curl = curl_init();

Como segundo paso vamos a configurar cURL para que acceda a una URL del API de Twitter, vamos a indicarle el puerto a utilizar y una pequeña configuración para controlar la salida.

//url del API de Twitter a la que acceder con curl
curl_setopt($curl, CURLOPT_URL, 'http://twitter.com/statuses/public_timeline.xml');
//puerto para la comunicación
curl_setopt($curl, CURLOPT_PORT, 80);
//pido a curl que devuelva los datos en un string, en vez de mostrarlos por pantalla
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

Como detalles cabe destacar que vamos a acceder a la URL 'http://twitter.com/statuses/public_timeline.xml', que nos devolverá las últimas participaciones públicas de los usuarios de Twitter a nivel global. Utilizaremos el puerto 80. Además hemos configurado a true el valor de la variable de configuración CURLOPT_RETURNTRANSFER, para que la respuesta de la comunicación nos la devuelva, la almacenemos en una variable y podamos hacer lo que queramos con ella.

Ahora que ya tenemos configurado cURL con las opciones más básicas, vamos a ejecutar la solicitud al API de Twitter.

$respuesta = curl_exec($curl);

Almaceno la respuesta en la variable $respuesta y luego la mostraremos por pantalla. Pero antes, a modo de curiosidad, vamos a traernos también los datos de cabecera del estado de nuestra conexión con cURL.

$cabeceras = curl_getinfo($curl);

Ahora voy a cerrar la conexión a esa URL realizada con cURL:

curl_close($curl);

Y por último vamos a mostrar en el texto de la página las variables de respuesta y las cabeceras de cURL:

echo '<pre>';
var_dump($cabeceras);
echo '</pre>';

echo "<hr>";

echo '<pre>';
var_dump($respuesta);
echo '</pre>';

Eso es todo. El ejemplo, ejecutado en nuestro servidor, debería mostraros los datos de las cabeceras de cURL para esta conexión y luego los textos de la línea de estatus públicos de las últimas participaciones de los usuarios.

El código completo es el siguiente:

<?php
//accedo a cURL con PHP

//inicio una sesión con curl
$curl = curl_init();

//cargo algunas opciones en la conexión CURL
//url del API de Twitter a la que acceder con curl
curl_setopt($curl, CURLOPT_URL, 'http://twitter.com/statuses/public_timeline.xml');
//puerto para la comunicación
curl_setopt($curl, CURLOPT_PORT, 80);
//pido a curl que devuelva los datos en un string, en vez de mostrarlos por pantalla
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

//ejecuto la solicitud al API con curl
$respuesta = curl_exec($curl);

//recibo algunas informaciones de cabecera del estado de curl
$cabeceras = curl_getinfo($curl);

//Cierro la conexión con curl
curl_close($curl);

//muestro los valores recibidos como información de cabecera de curl
echo '<pre>';
var_dump($cabeceras);
echo '</pre>';

echo "<hr>";

echo '<pre>';
var_dump($respuesta);
echo '</pre>';
?>

Aunque este primer ejemplo ha estado bien, seguramente queráis hacer cosas mucho más complejas. En futuros artículos vamos a seguir explotando las posibilidades del API de Twitter, pero vamos a mostrar una manera de simplificar las cosas que se basa en utilizar alguna librería de acceso a Twitter, que nos permitirá comunicar con el API sin tener que complicarnos demasiado la vida.


Manuales relacionados
Categorias relacionadas
El autor
Últimas noticias
Alojados en el grupo