Войдите в Facebook с помощью PHP-скрипта, но позвольте мне войти в браузер после завершения этого скрипта - PullRequest
0 голосов
/ 28 апреля 2009

Пожалуйста, я решаю эту проблему. Мне нужно войти в Facebook, Twitter или любой другой веб-сайт с моего PHP-скрипта, запущенного на моем сервере. Я обычно делаю это с CURL, сохраняя куки в некоторый предопределенный файл. Но теперь мне нужно что-то новое .. Мне нужно оставаться в системе с помощью браузера, даже когда скрипт завершает процесс входа в систему. Это что-то простое, я не вижу ... или я иду на сложную территорию? Что-то подсказывает мне, что мне нужно использовать javascript для установки всех файлов cookie и отправки формы данных для входа?

Если кто-то выполнил вход в Facebook или Twitter с помощью JavaScript, не могли бы вы поделиться со мной некоторыми советами или полным сценарием, пожалуйста?

Спасибо за любые советы и объяснения общей логики.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2009

Я бы посмотрел на Facebook Connect , Подробнее здесь и здесь .

1 голос
/ 17 сентября 2009

Для вашей следующей работы :) После небольшого серфинга я нашел скрипт , который вам (а иногда и мне) нужен.

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

}

и затем вы можете загрузить домашнюю страницу с помощью

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

Весь сценарий, который я использую, расположен по адресу http://pastie.org/619912.
И да, используйте это для добра, а не для зла:)

0 голосов
/ 28 апреля 2009

Я не думаю, что это возможно. Когда ваш PHP-скрипт входит в систему, он получает токен аутентификации / cookie для Facebook. Этот файл cookie является частным и не должен использоваться на любом другом компьютере. Есть хакерские способы сделать это, но я не могу порекомендовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...