2015-01-11 20 views
6

私はfacebook cookieでmy_cookie.txtを取得しようとしていますので、他のfacebookページでCURLで再利用できます。ここでログイン時にCURLとPHPを使用してfacebook cookieを取得する

は私のPHPコードです...私はこれをしようとすると...私はFacebookのログインページを参照してくださいが、それは私のブラウザで私のクッキーを有効する必要があります...しかし、彼らが使用可能にしていると言って私にエラーを与えます。

$email = 'my email'; 
$password = 'mypassword'; 
$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php'); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($email).'&pass='.urlencode($password)); 
    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, "my_cookies.txt"); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, "my_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"); 
$page =  curl_exec($ch); 

echo $page; 

ここでは、私が

enter image description here

私が間違ってやっている任意のアイデアを参照してくださいエラーですか?

curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEJAR, uniquefilename); 
curl_setopt($ch, CURLOPT_COOKIEFILE, uniquefilename); 

:これらの行を追加し

+5

Facebookページを試してみるべきではありません。あなたのTOSには反対です。 Facebookで何かしたい場合は、そのAPIを使用してください。 – CBroe

答えて

1
+0

私はすでに最後の2つを持っていた、私は最初の1つを追加しようとしたと同じ結果を与えた – user3011784

+0

それはFacebookのクッキーの代わりにjavascriptのクッキーを使用する可能性がありますので、実装することは困難です。デバッグして、どちらの側からクッキーを受け取っているのかを確認してください。 – manuelbcd

+0

ok、ありがとうございます。 – user3011784

0

ねえ、あなたはmy_cookies.txt 644へのアクセス許可のファイルのアクセス許可を設定しようとしましたか?また、上の3行がすべて必要になります。

$cookie_file = "my_cookies.txt"; 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
+0

あなたはまた、そのクッキーにエースがあることを確認する必要があります。 chmod 777 my_cookies.txt –

0

という名前のクッキーのいくつかdatr動作しませんJavaScriptやログインに設定する必要があります。だから私は私のブラウザからこのクッキーを取得し、この文字列をクッキーファイルに追加し、正常にサインインしました!

4

まず、FacebookのTOS(より良い使用API​​)に反対しています。

ログインはログインページには近づいていません。ホームページ(この場合はカールを使用)を最初にブラウズし、そのクッキーをjarファイルに保存する必要があります。その後、ログイン中にログインリクエストでCookieを使用します。ホームページからトークンなどを探す必要があるかもしれません(トークンを使用している場合)。

1)カールを使用してホームページを閲覧:

だから手順は、ログイン要求をしたい任意のサイトのためのものです。 jarを使用してクッキーを保存します。そして、カールを閉じることを忘れないでください。

2)ページにトークンまたは隠しパラメータがある場合は、そのページをHTMLから解析します。

3)新しいカールを初期化し、postパラメータをuser/pass + hiddenパラメータで準備します。クッキージャーを追加することを忘れないでください。

関連する問題