Melden Sie sich in Facebook mit PHP-Skript, aber lassen Sie mich im Browser nach dem Ende dieses Skript protokolliert

stimmen
-3

Bitte, ich dieses Problem lösen bin .. Ich brauche in Facebook oder Twitter oder einer anderen Webseite von meinem PHP-Skript zum Login auf meinem Server ausgeführt wird. Ich tue normaly dass mit Curl, Cookies zu vordefinierten Datei zu speichern. Aber jetzt brauche ich etwas Neues .. Ich muss mit meinem Browser eingeloggt bleiben, auch wenn das Skript den Login-Prozess endet. Ist das etwas einfach, ich kann nicht sehen, .. oder bin ich in kompliziertem Gebiet gehen? Etwas sagt mir, ich würde müssen Javascript verwenden, um alle Cookies zu setzen und die Login-Daten Form zu senden?

Wenn jemand loging in Facebook oder Twitter mit Javascript getan hat, können Sie mit mir ein paar Tipps oder das komplette Skript teilen, bitte?

Vielen Dank für alle Tipps und mir die allgemeine Logik zu erklären.

Veröffentlicht am 28/04/2009 um 17:30
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
0

Ich glaube nicht, das soll möglich sein. Wenn Ihr PHP-Skript anmeldet, wird es einen Authentifizierungstoken / Cookie für Facebook. Das Cookie ist privat und nicht angeblich auf einer anderen Maschine verwendet werden. Es gibt hackish Möglichkeiten, es zu tun, aber keiner kann ich empfehlen.

Beantwortet am 28/04/2009 um 17:37
quelle vom benutzer

stimmen
2

Ich würde schauen Sie in Facebook Connect , mehr Infos hier und hier .

Beantwortet am 28/04/2009 um 18:58
quelle vom benutzer

stimmen
1

Für Ihren nächsten Job :) Nach einem wenig Surfen fand ich ein Skript Sie (und ich manchmal) benötigt.

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

}

und dann können Sie Homepage laden mit

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

Ganze Skript Ich verwende an sich http://pastie.org/619912 .
Und ja, verwenden Sie es für gut, nicht für das Böse :)

Beantwortet am 17/09/2009 um 05:03
quelle vom benutzer

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