A medida que va creciendo Facebook, los desarrolladores van siendo más imaginativos a la hora de crear aplicaciones que trabajen sobre esta red. Actualmente existen clientes para Facebook que no necesitan que estemos dentro de la página, y lo que presento a continuación es un pequeño ejemplo de todo ello.
Este script es parte investigación / parte navegación y lectura de foros en los que no he encontrado la respuesta exacta a mis necesidades. El problema está en que, a pesar de la existencia de Facebook Connect, si queremos automatizar tareas en Facebook tenemos que estar identificados en el sistema y entonces es cuando podemos hacer la tarea en cuestión.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | <?php $face_cookie='/tmp/fcbk_cookie'; $useragent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3"; $login_email='*************'; $login_pass='**************'; function curl_load_url($url, &$error, $postfields=false) { global $useragent, $face_cookie; $cu = curl_init(); curl_setopt($cu, CURLOPT_URL, $url); curl_setopt($cu, CURLOPT_HEADER, 0); curl_setopt($cu, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($cu, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cu, CURLOPT_USERAGENT, $useragent); curl_setopt($cu, CURLOPT_COOKIEJAR, $face_cookie); curl_setopt($cu, CURLOPT_COOKIEFILE, $face_cookie); if ($postfields) { curl_setopt($cu, CURLOPT_POSTFIELDS, $postfields); curl_setopt($cu, CURLOPT_POST, 1); } $cont=curl_exec($cu); $error=curl_errno($cu); curl_close($cu); return $cont; } function fb_login($email, $passwd) { $error=false; curl_load_url('http://login.facebook.com/login.php', $error); $ch_test='€,´,€,´,水,Д,Є'; $postfields='cuarset_test='.urlencode($ch_test).'&locale=es_ES&email='.urlencode($email).'&pass='.urlencode($passwd).'&pass_placeholder=&cuarset_test='.urlencode($ch_test); $cont=curl_load_url('https://login.facebook.com/login.php?login_attempt=1', $error, $postfields); /* Si hay un error de cURL lo decimos */ if ($error) echo 'Error (cURL): '.$error."\n"; /* Esta palabra *login_attempt* aparece en los intentos de login de Facebook */ /* es raro que en la página principal salga. */ /* Podemos también, verificar si está el enlace a editaccount.php para decir */ /* que hemos sido identificados correctamente */ if (strpos($cont, 'login_attempt')!==false) /* if (strpos($cont, 'editaccount.php')===false) */ { echo 'Error (Facebook): E-mail o contraseña incorrecto'; $err=1; } /* Si no hay errores nos daremos por identificados, aunque si el password es incorrecto */ return (!$err); } if (fb_login($login_email,$login_pass)){ $error=false; $cont = curl_load_url('http://apps.facebook.com/minutofilosofico/', $error); // Mostramos el contenido de la página echo $cont; } ?> |
¿Qué aplicaciones prácticas puede tener esto? Podemos hacer fácilmente un programa de escritorio para manejar Facebook, enviarnos por e-mail o un sms automáticamente si alguien que esperamos nos escribe, subir fotos de forma más rápida con un script en nuestro ordenador… o publicar un mensaje a la hora que hayamos especificado.
Como el ejemplo está en cURL será fácil portarlo a otro lenguaje con el que os sintáis más cómodos.
Pingback: Bitacoras.com /
Pingback: BlogESfera.com /
Pingback: Cómo hacer login por Facebook en PHP paso a paso – Poesía Binaria /