Mar 12, 2010
Twitteando desde la API de Twitter
Actualización: Hace unos días twitter deshabilitó la autentificación simple, que es en lo que esto se basa, asi que este método ya no es válido, en breve estaré posteando como hacerlo desde ahora.
Como ya habrán visto la integración con las redes sociales son cada vez mas “necesarias” en la Web 2.0, por ejemplo en este mismisimo blog, cada vez que se escribe un articulo nuevo es twitteado y hay un listado de los seguidores de nustra cuenta de Tiwitter: @web20_tips, el viejo “recomendar por mail” ahora es reemplazado por “compartir en…” y etc.
Los que les traigo ahora es una forma muy facil para twittear algo automáticamente, de esta forma pueden hacer que sus aplicaciones interactuen con Twitter actualizando el estado.
Con solo hacer un POST a esta url; “http://twitter.com/statuses/update.xml?status=mensaje“, y los datos de autentificación actualizaremos el status de la cuenta al a cual tengamos acceso.
Como se programar en PHP, les mostraré como hacer una función usando la librería CURL, de este modo con solo una linea de código podremos ponerle mas dinamismo a nuestro sitio web, aparte de volverlo mas “comunicado”, empezemos:
// Empezamos la función:
function sendTwitt ($user, $pass, $msg) {
// Primero tenemos la url a la que postear:
$host = "http://twitter.com/statuses/update.xml?status=";
// Ahora "acomodamos el mensaje":
$msg = substre($msg,0,140); // Lo cortamos si tiene mas de 140 caracteres.
$msg = urlencode($msg); // Lo limpiamos para mandarlo a la url
// Ahora inicializamos la peticion y le pasamos las opciones:
$sender = curl_init();
curl_setopt($sender CURLOPT_URL, $host.$msg); // url + mensaje
curl_setopt($sender, CURLOPT_RETURNTRANSFER, true);
curl_setopt($sender, CURLOPT_USERPWD, "$user:$pass"); //User y password
curl_setopt($sender CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($sender, CURLOPT_POST, true); // Por post.
curl_exec($sender); // enviamos
$stat = curl_getinfo($sender); // Pedimos el estado
curl_close ($sender); // finalizamos el pedido
if ($stat['http_code'] == 200) {
return true; //Mensaje enviado correctamente
} else {
return false; // falló
}
}
Bueno, espero que les sirva, cualquier duda o mejora pueden hacerla en los comentarios.
Tips relacionados:

voy a probarlo en mis webs
Buen tip. By the way…