Ciao a tutti. Sto cercando di realizzare un proxy php per Facebook veloce e funzionante come f1.chinoxy.com per "bypassare" un proxy aziendale molto carognoso (lo voglio rifare e non usare questo perchè non so di preciso dove vadano a finire il mio username e la password...)
Per fare ciò ho deciso di usare PHP e l'estensione cURL per il recupero delle pagine (monterò tutto su un webserver "visibile" e non filtrato dal proxy che mi farò da tramite tra me e FB).
Sono attualmente arenato sul login:
un pò googhelando e un pò mettendoci del mio sono arrivato a questo codice che ho provato su piattaforma Win7/Apache e che fa correttamente il login:
Codice PHP:
<?php
include ("LIB_parse.php");
$cookie_file_path = "cookie.txt";
$fp = fopen($cookie_file_path, "w");
fclose($fp);
$username = "tuausername";
$password = "tuapassword";
$post4login = "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&version=1.0&return_session=0&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&email=".$username."&pass=".$password."";
function curl_get($url, $post = NULL)
{
global $cookie_file_path, $username, $password;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER, "https://www.facebook.com/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// Ricevi cookies
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
if ($post){ curl_setopt($ch, CURLOPT_POSTFIELDS, $post);}
$html = curl_exec($ch);
return $html;
}
$url = "https://www.facebook.com/login.php?login_attempt=1";
$a = curl_get($url, $post4login);
echo $a;
// final result $result = return_between($a, "<!DOCTYPE html>","</html>", INCL);
?>
Il problema è che nel file cookie.txt non viene scritto un tubo. San Google è venuto in mio aiuto dicendomi che su Windows devo usare i percorsi assoluti sennò PHP e cURL litigano (quando mai!) (http://www.renownedmedia.com/blog/ph...ng-on-windows/).
In effetti inserendo l'url assoluto il file viene scritto.... unico problema che non funziona più il login! Mi ci sono scervellato un pò ma non ho risolto
Dove sbaglio? Il mio obiettivo è creare una benedetta funzione che vada per tutte le pagine.
- quando faccio il POST di login mi salvi la reply del server con i cookie in un file senza far casino
- quando richiamo una qualsiasi altra pagina di quel dominio usi il cookie salvato per farmela vedere
Non so se quello che ho elaborato è il metodo più semplice per raggiungere l'agognato obiettivo (lato programmazione intendo, non ditemi che con una VPN posso risolvere perchè il proxy aziendale è una carogna) ogni altra soluzione è accetta (e sono curioso di sapere cosa sbaglio nel mio codice se possibile).
Grazie a tutti