Zaloguj się na Facebooku ze skryptu PHP, ale pozwól mi zalogować się w przeglądarce po zakończeniu tego skryptu

głosy
-3

Proszę, mam rozwiązać ten problem .. muszę się zalogować na Facebook lub Twitter lub jakiejkolwiek innej stronie internetowej z mojego skryptu PHP działającego na moim serwerze. Ja normalnie robi to z dyni, zapisywanie plików cookie w pewnym zdefiniowanym pliku. Ale teraz muszę coś nowego .. muszę pozostać zalogowany z mojej przeglądarce, nawet gdy skrypt kończy proces logowania. Czy to coś prostego, nie widzę .. albo ja wchodząc powikłanej terytorium? Coś mi mówi, że muszę użyć javascript, aby ustawić wszystkie ciasteczka i wysłanie formularza danych logowania?

Jeśli ktoś zrobił zakładania konta na Facebook lub Twitter z javascript, można udostępnić jakieś wskazówki lub kompletny skrypt ze mną, proszę?

Dzięki za wszelkie wskazówki i wyjaśniając mi ogólną logikę.

Utwórz 28/04/2009 o 17:30
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
0

Nie sądzę, że to ma być możliwe. Gdy skrypt PHP, loguje się, że dostaje uwierzytelnianie tokena / ciasteczka na Facebooku. Że cookies są prywatne i nie powinien być używany na dowolnej innej maszynie. Istnieje hackish sposoby aby to zrobić, ale nie mogę polecić.

Odpowiedział 28/04/2009 o 17:37
źródło użytkownik

głosy
2

Chciałbym spojrzeć na Facebook Connect , Więcej informacji tutaj i tutaj .

Odpowiedział 28/04/2009 o 18:58
źródło użytkownik

głosy
1

Na następnej pracy :) Po trochę surfingu znalazłem skrypt ty (i czasami mi) potrzebne.

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

}

a następnie można załadować ze strony startowej

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

Cały skrypt używam położony w http://pastie.org/619912 .
I tak, użyj go na dobre, a nie złe :)

Odpowiedział 17/09/2009 o 05:03
źródło użytkownik

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