Facebook 登录与 PHP curl cookie 错误



我需要一些帮助。

我正在使用curl登录Facebook。在第一次尝试时,它工作正常并且可以正确保存cookie,但是当我重新加载页面时,它显示错误,指出:

抱歉,您的请求无法处理。请重试。

有人可以告诉我如何解决这个问题吗?要么我必须一次又一次地清除cookie文件,要么其他解决方案可以解决此问题。提前谢谢。

<?php
// script name: login_to_facebook.php
// coder: Sony AK Knowledge Center - www.sony-ak.com
// your facebook credentials
$username = "";
$password = "";
// access to facebook home page (to get the cookies)
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.facebook.com");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_ENCODING, "");
curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_facebook.cookie');
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
$curlData = curl_exec($curl);
curl_close($curl);
// do get some parameters for login to facebook
$charsetTest = substr($curlData, strpos($curlData, "name="charset_test""));
$charsetTest = substr($charsetTest, strpos($charsetTest, "value=") + 7);
$charsetTest = substr($charsetTest, 0, strpos($charsetTest, """));
$locale = substr($curlData, strpos($curlData, "name="locale""));
$locale = substr($locale, strpos($locale, "value=") + 7);
$locale = substr($locale, 0, strpos($locale, """));
$lsd = substr($curlData, strpos($curlData, "name="locale""));
$lsd = substr($lsd, strpos($lsd, "value=") + 7);
$lsd = substr($lsd, 0, strpos($lsd, """));
// do login to facebook
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://login.facebook.com/login.php?    login_attempt=1");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, "charset_test=" . $charsetTest . "&locale=" . $locale . "&non_com_login=&email=" . $username . "&pass=" . $password . "&charset_test=" . $charsetTest . "&lsd=" . $lsd);
curl_setopt($curl, CURLOPT_ENCODING, "");
curl_setopt($curl, CURLOPT_COOKIEFILE, getcwd() . '/cookies_facebook.cookie');
curl_setopt($curl, CURLOPT_COOKIEJAR, getcwd() . '/cookies_facebook.cookie');
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
// curl_setopt($curl, Curl_, value)
//$curlData is the html of your facebook page
$curlData = curl_exec($curl);
$page_file = "result_output.txt";
file_put_contents($page_file, $curlData . "rnrn======== RESULT                       ===========rnrn", FILE_APPEND | LOCK_EX);

?>

Facebook会在您登录之前严格检查您的用户代理,以防止脚本成为您的脚本。我已经尝试使用所有操作系统和导航器更改我的用户代理,但我从未能够使用我的脚本登录。

最新更新