Artículo enviado por A. Cuartango:
A veces resulta interesante poder actualizar la página de Twitter o la de Facebook desde la línea de comandos. Para ello podemos hacer uso de curl, la navaja suiza de la automatización de tareas Web. Veamos cómo:
«Twitter es más sencillo, ya que su API permite usar curl sin ninguna dificultad (el API está documentado siguiendo el enlace de la página principal de Twitter):
curl -u USUARIO:PASSWORD -d status="Hola desde curl. MENSAJE AQUI" http://api.twitter.com/1/statuses/update.json |
En facebook hay que usar un script (Gracias Alste):
<?php // // change Facebook status with curl // Thanks to Alste (curl stuff inspired by nexdot.net/blog) function setFacebookStatus($status, $login_email, $login_pass) { echo "Entra"; $debug = false; //CURL stuff //This executes the login procedure $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php'); curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=' . urlencode($login_email) . '&pass=' . urlencode($login_pass) . '&login=' . urlencode("Log in")); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //make sure you put a popular web browser here (signature for your web browser can be retrieved with 'echo $_SERVER['HTTP_USER_AGENT'];' curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12"); curl_exec($ch); //This executes the status update curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php'); $page = curl_exec($ch); curl_setopt($ch, CURLOPT_POST, 1); //this gets the post_form_id value preg_match("/input type="hidden" name="post_form_id" value="(.*?)"/", $page, $form_id); //we'll also need the exact name of the form processor page preg_match("/form action="(.*?)"/", $page, $form_num); curl_setopt($ch, CURLOPT_POSTFIELDS, 'post_form_id=' . $form_id[1] . '&status=' . urlencode($status) . '&update=' . urlencode("Update status")); //set url to form processor page curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com' . $form_num[1]); curl_exec($ch); if ($debug) { //show information regarding the request print_r(curl_getinfo($ch)); echo curl_errno($ch) . '-' . curl_error($ch); echo "<br><br>Your Facebook status seems to have been updated."; } //close the connection curl_close($ch); } setFacebookStatus("Esto es una prueba de publicacion automática desde línea de comandos", "CUENTA_FACEBOOK","CLAVE_FACEBOOK" ); |
Con esto y un poco de scripting podremos publicar lo que queramos en una cuenta de facebook y twitter.