Crear un bot sencillo para Twitter (anteriormente)

Actualización:
Han habido modificaciones recientes en la API de Twitter. Te recomendamos revisar antes el siguiente enlace:
https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api

Este post es más que nada un apunte personal, por si algún día necesito recuperarlo, pero lo dejo a disposición de la gente por si a alguien le interesa. Lo que veremos es el código mínimo necesario para crear un bot que actualice el status de una cuenta de Twitter (X) a partir de una fuente sencilla en PHP.

El código mostrado es el usado para actualizar el usuario de Twitter @tiempo_bcn. Una cuenta que simplemente va mostrando cada cierto tiempo el tiempo actual en la ciudad de Barcelona. Para realizarlo usamos la Google Weather Api y como no, la Api de Twitter.

De esta forma, cada vez que se lanza el script se crea un nuevo tweet con el clima actual en Barcelona para @tiempo_bcn… Muestro el código de forma lineal, sin funciones ni clases para que se entienda más fácilmente, pero esta claro que para hacer un bot más completo sería bueno usar alguna clase PHP creada para la api de twitter (o crear una propia) y organizar el código de forma un poco más seria.

weather->current_conditions;

$status = "#tiempo en #Barcelona : " . $current_conditions->temp_c["data"] . "º, " . $current_conditions->condition["data"] . ". " .$current_conditions->wind_condition["data"];

// Variables de configuracion de la cuenta de twitter

$twitterUsername = 'tiempo_bcn';

$twitterPassword = '1234567890';

$twitterUserAgent = 'API';

$twitterRequestUrl = 'http://twitter.com/statuses/update.xml';

$twitterPost = 'status='.urlencode($status);

// iniciamos curl

$c = curl_init($twitterRequestUrl);

// configuramos la llamada

curl_setopt($c, CURLOPT_POST, true);

curl_setopt($c, CURLOPT_POSTFIELDS, $twitterPost );

curl_setopt($c, CURLOPT_USERPWD, $twitterUsername . ':'. $twitterPassword);

curl_setopt($c, CURLOPT_VERBOSE, 1);

curl_setopt($c, CURLOPT_NOBODY, 0);

curl_setopt($c, CURLOPT_HEADER, 0);

curl_setopt($c, CURLOPT_USERAGENT, $twitterUserAgent );

curl_setopt($c, CURLOPT_FOLLOWLOCATION,1);

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($c, CURLOPT_HTTPHEADER, array('X-Twitter-Client: ', 'X-Twitter-Client-Version: ', 'X-Twitter-Client-URL: '));

// lanzamos la llamada y sacamos los datos

$response = curl_exec($c);

$curlInfo = curl_getinfo($c);

if(intval($curlInfo['http_code'])==200)

{

$response = new SimpleXMLElement($response);

}

// cerramos curl

curl_close($c);
Iñaki Huerta
CEO de IKAUE

Director de IKAUE. Analista Digital y SEO hace más de 15 años. Internet Lover, Creador de Hilillos y DataHacker.

También te puede interesar

¡Suscríbete!

RECIBE NUESTRA NEWSLETTER

Registrar nueva cuenta

IKAUE MARKETING ONLINE, S.L. es la Responsable del Tratamiento de tus datos, con la finalidad de gestionar tu registro y remitirte nuestra Newsletter con las últimas novedades y/o promociones. Tienes derecho de acceso, rectificación, supresión, limitación, oposición al tratamiento y portabilidad. Puedes ejercitar tus derechos [email protected]. Más información en la Política de privacidad.