Archivo

Entradas Etiquetadas ‘aplicación’

Login a Facebook y acceso a aplicación automatizado

Miércoles, 11 de Agosto de 2010 Gaspar Fernández Sin comentarios

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='&euro;,&acute;,€,´,水,Д,Є';
  $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.

Desarrollando aplicaciones para Facebook

Jueves, 16 de Julio de 2009 blakeyed 1 comentario

Hace un tiempo me animé a crear mi primera facebook app, la llamé Campo de Minas, porque pretendía utilizar esa app para hacer pruebas.

Para empezar el desarrollo, lo primero que hay que hacer es entrar en la aplicación para desarrolladores. Por una parte me gusta lo bien montado que está todo, la forma de introducir la información; aunque por otra parte es un sistema lento. Se tarda mucho tiempo en introducir la información navegando por todas la páginas.

Una vez dentro, dispuesto a ponerme a programar, y tras leerme un poco de la documentación, podemos observar la gran API que existe, y las posibilidades para embeber aplicaciones dentro de Facebook. Tenemos lenguajes como FBML, FBJS, FQL, que intentan reemplazar a HTML, Javascript y SQL, para utilizar la API de Facebook. Como punto positivo podemos destacar la seguridad con respecto a Facebook, se han cubierto bien las espaldas, ya que las consultas a las bases de datos de Facebook están filtradas (no estoy diciendo que sea un sistema invulnerable); por otra parte el Javascript está filtrado, los nombres de nuestras funciones, estilos, etc, son filtrados, por lo que evitan errores en el caso de que hagamos algo con un nombre repetido. Por otra parte, tendremos un acceso fácil a las ventanas que Facebook nos aporta como son la de invitar gente, publicar en el perfil, etc.

El hecho de tener tantas posibilidades, y de la sustitución de los lenguajes, nos impide algo importante: la posibilidad de probar nuestra aplicación offline, lo que es muy útil cuando estamos en el proceso de desarrollo, al menos para ejecutar la aplicación desde nuestro servidor local; es normal, si utilizamos recursos que no están en nuestro ordenador. De todas formas, siempre podremos dividir la aplicación en dos: el conector con Facebook, y nuestra propia aplicación; poco a poco quiero desarrollar algunas cosas más y con esto, incluiré algunos ejemplos en el blog.

El alojamiento de la aplicación corre de nuestra cuenta, por lo que Facebook sólo almacena los logotipos de nuestra aplicación y los enlaces.

Visita otras webs de la red