2010-06-13 3 views
2

У меня есть сценарий, который извлекает информацию с страницы facebook. Информация, недоступная с помощью opengraph, но это то, что мой клиент запросил для своих страниц.cURL Cookies и Facebook

В любом случае, есть ли способ использовать куки-файлы из браузера в скрипте cURL?

В тот момент, когда вы запускаете скрипт спросит вас войти в систему. Но я уже вошел в Facebook на данный момент и сценарий все еще просит меня войти.

Есть ли способ, чтобы использовать куки-файлы из браузера?

Благодаря

ответ

1

Нет, потому что технически, вы не должны быть в состоянии захватить их. Однако вы можете создать печенье с завитка запроса (это фрагмент из старого сценария шахты, он не может работать на 100% с последними Facebooks переменные могут быть изменены и т.д ..)

$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, "/app/my_cookies.txt"); 
     curl_setopt($ch, CURLOPT_COOKIEFILE, "/app/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"); 
     curl_exec($ch); 

После того, как вы храните печенье , вы можете просто изменить URL-адрес и перейти оттуда.

+0

Так это невозможно сделать то, что я пытаюсь сделать? –

+0

Не заставляя пользователя снова входить в ваш скрипт и получать файлы cookie самостоятельно, да. Независимо от того, сохраняете ли вы данные достаточно безопасными для хранения файлов cookie даже на вашем сервере, я оставлю вам. –

2

Попробуйте использовать:

curl_setopt($ch, CURLOPT_COOKIE, 'COOKIENAME=COOKIEVALUE;COOKINAME2=COOKIEVALUE2'); 

, как вы получите имена печенья и их значения до вас.

об опционной CURLOPT_COOKIE этого, что PHP.NET говорит об этом:

CURLOPT_COOKIE Содержимое «Cookie:» заголовок используется в запросе HTTP. Обратите внимание, что мультипликатор печенье разделены точкой с запятой с последующим пробелом (например, «фрукты = яблоко, цвет = красный»)

+0

Если он просто отправил случайные файлы cookie, это сработает, но то, что он хочет сделать, это захватить значения файлов cookie с другого веб-сайта через браузер. Это запрещено, если только он не использует дыры в безопасности. –

Смежные вопросы