Inicie sesión en Facebook con script PHP, pero permítame iniciar sesión en el navegador una vez finalizado este script

votos
-3

Por favor, estoy resolviendo este problema. Necesito iniciar sesión en Facebook o Twitter o en cualquier otro sitio web desde mi script PHP que se ejecuta en mi servidor. Normalmente estoy haciendo eso con CURL, guardando cookies en algún archivo predefinido. Pero ahora necesito algo nuevo. Necesito permanecer conectado con mi navegador, incluso cuando el script finaliza el proceso de inicio de sesión. ¿Es algo simple, no puedo ver ... o voy a entrar en un territorio complicado? Algo me dice, ¿necesitaría usar javascript para configurar todas las cookies y enviar el formulario de datos de inicio de sesión?

Si alguien ha hecho login en Facebook o Twitter con javascript, ¿puede compartir algunos consejos o el guión completo conmigo, por favor?

Gracias por cualquier consejo y explicarme la lógica general.

Publicado el 28/04/2009 a las 17:30
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
0

No creo que se suponga que esto sea posible. Cuando su script PHP inicia sesión, obtiene un token / cookie de autenticación para Facebook. Esa cookie es privada y no debe usarse en ninguna otra máquina. Hay formas de hacerlo, pero no puedo recomendar ninguno.

Respondida el 28/04/2009 a las 17:37
fuente por usuario

votos
2

Buscaría en Facebook Connect , más información aquí y aquí .

Respondida el 28/04/2009 a las 18:58
fuente por usuario

votos
1

Para su próximo trabajo :) Después de un poco de surf, encontré un script que (y a veces yo) necesitaba.

/*
* Login to facebook
* $login_email : Account to login with
* $login_pass : Account password
*
* Returns true if logged in successfully, false otherwise
* Echoes any login error code
*
* Matt Smith - geekalicio.us
* Apr 23, 2009
*/
function fb_login($login_email, $login_pass){

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?login_attempt=1');
 curl_setopt($ch, CURLOPT_POSTFIELDS,'charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&locale=en_US&email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&pass_placeholder=&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84');
 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, str_replace('\\','/',dirname(__FILE__)).'/fb_cookies.txt');
 curl_setopt($ch, CURLOPT_COOKIEFILE, str_replace('\\','/',dirname(__FILE__)).'/fb_cookies.txt');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5");
 curl_exec($ch);

 $err = 0;
 $err = curl_errno($ch);
 curl_close($ch);

 if ($err != 0){
 echo 'error='.$err."\n";
 return(false);
 } else {
 return(true);
 }

}

y luego puedes cargar la página de inicio con

if (fb_login($login_email,$login_pass)){
$ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?login_attempt=1');
 curl_setopt($ch, CURLOPT_POSTFIELDS,'charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&locale=en_US&email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&pass_placeholder=&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84');
 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, str_replace('\\','/',dirname(__FILE__)).'/fb_cookies.txt');
 curl_setopt($ch, CURLOPT_COOKIEFILE, str_replace('\\','/',dirname(__FILE__)).'/fb_cookies.txt');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5");
$html = curl_exec($ch);

 curl_close($ch);

  echo $html;
}

Toda la secuencia de comandos que estoy usando se encuentra en http://pastie.org/619912 .
Y sí, úsalo para siempre, no para mal :)

Respondida el 17/09/2009 a las 05:03
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more