Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Programmazione Autenticazione su Facebook con curl e PHP

Autenticazione su Facebook con curl e PHP

E-mail Stampa PDF

Per chi volesse interagire con Facebook riporto qui una parte di codice utile a effettuare il login, date l'email e la password dell'account, usando il comando "curl".

<?php
 
/* Inserie lemail e la password */
$EMAIL      = "";
$PASSWORD   = "";
 
function cURL($url, $header=NULL, $cookie=NULL, $p=NULL) {
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_HEADER, $header);
 curl_setopt($ch, CURLOPT_NOBODY, $header);
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // -> https
 curl_setopt($ch, CURLOPT_COOKIE, $cookie);
 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // -> https
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 
 if ($p) {
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
 }
 $result = curl_exec($ch);
 
 if ($result) {
 return $result;
 } else {
 return curl_error($ch);
 }
 curl_close($ch);
}
 
$a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL&amp;pass=$PASSWORD");
preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
$c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&amp;pass=$PASSWORD");
preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);
for($i=0;$i<count($d[0]);$i++)
 $cookie.=$d[1][$i].";";
 
/*
Ora che i cookies sono sistemati è possibile usare il proprio account di facebook 
aprendo un altro url e aggiungendo i comandi necessari come ultimo parametro.
*/
echo cURL("http://www.facebook.com/",null,$cookie,null);
?>
 

l'ultima riga mostrerà sono il contenuto della pagina di Home di facebook, ma se lo scopo era di verificare la correttezza delle credenziali, basterà verificare che nel cookie creato vi sia specificato lo userid, e quindi la stringa "user".

$pos = strrpos($cookie, "user");
 if ($pos === false) {
  echo 'Access Denied';
 } else {
  echo 'Access Granted';
 }
Ultimo aggiornamento ( Lunedì 25 Aprile 2011 18:17 )  
Loading

Login