Log in op Facebook met PHP-script, maar laat mij aangemeld in de browser na het einde van dit script

stemmen
-3

Alsjeblieft, ik ben het oplossen van dit probleem .. Ik moet inloggen in Facebook of Twitter of een andere website uit mijn PHP script op mijn server. Ik ben normaal gesproken om dat te doen met CURL, het opslaan van cookies om een ​​aantal vooraf gedefinieerde bestand. Maar nu moet ik iets nieuws .. Ik moet ingelogd blijven met mijn browser, zelfs wanneer het script eindigt het inloggen. Is dat iets eenvoudig, kan ik niet zien .. of ben ik te gaan op ingewikkelde grondgebied? Iets zegt me dat ik zou moeten javascript gebruiken om alle cookies te stellen en het verzenden van de login gegevens invullen?

Als iemand loging heeft gedaan naar Facebook of Twitter met javascript, kunt u delen een aantal tips of het volledige script met mij, alsjeblieft?

Bedankt voor alle tips en verklaren me de algehele logica.

De vraag is gesteld op 28/04/2009 om 17:30
bron van user
In andere talen...                            


3 antwoorden

stemmen
0

Ik denk niet dat dit is dan ook mogelijk zijn. Wanneer uw PHP-script logt in, het wordt een authenticatie token / koekje voor Facebook. Dat cookie is prive en niet de bedoeling om te worden gebruikt op een andere machine. Er zijn hackish manieren om het te doen, maar niemand ik kan aanbevelen.

antwoordde op 28/04/2009 om 17:37
bron van user

stemmen
2

Ik zou kijken naar Facebook Connect , meer info hier en hier .

antwoordde op 28/04/2009 om 18:58
bron van user

stemmen
1

Voor uw volgende baan :) Na een beetje surfen vond ik een script u (en soms me) nodig.

/*
* 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);
 }

}

en dan kun je naar huis pagina te laden met

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;
}

Hele script Ik gebruik gelegen op http://pastie.org/619912 .
En ja, gebruik het voor een goede, niet ten kwade :)

antwoordde op 17/09/2009 om 05:03
bron van user

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