web-dev-qa-db-ja.com

PHP FacebookにログインするためのcURL

Curlを使用してFacebookにログインしようとしていますが、「ブラウザでCookieが有効になっていません。続行するには、ブラウザの設定でCookieを有効にしてください」と言って、Facebookですべて試してしまいました。

$login_email = 'email';
$login_pass = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.facebook.com/login.php');
curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com");
$page = curl_exec($ch) or die(curl_error($ch));
echo $page;

Cookieファイル「cookies.txt」が存在し、644の権限があります。複数のスニペットをオンラインで使用することも試みましたが、すべて同じエラーが発生します。これが機能するようになるまで現在のプロジェクトを続行できず、curlを使用してFacebookをナビゲートすることもできます。どんな助けでもありがたいです。

前もって感謝します。

12
Stumblinbear

これは役立つかもしれません:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

この答えを確認してください:

cURL PHPを使用してFacebookユーザーのウォールに投稿する

9
Pedro Lobito

私は同じ問題を抱えていて、以下を追加して修正しました:

curl_setopt($ s、CURLOPT_COOKIESESSION、false);

5
Zen

これはcurl cookieで使用する必要があります:

curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd () . '/mirazmac_cookie.txt' );

curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd () . '/mirazmac_cookie.txt' );
1
Bruno