2010-06-13 6 views
2

J'ai un script qui tire des informations à partir d'une page facebook. Des informations qui ne sont pas disponibles en utilisant opengraph mais c'est quelque chose que mon client a demandé pour leurs pages.cURL Cookies et Facebook

De toute façon, est-il possible d'utiliser les cookies du navigateur dans le script cURL?

Au moment où vous exécutez le script, il vous demande de vous connecter. Mais je suis déjà connecté à Facebook au moment et le script me demande encore de vous connecter.

Est-il possible d'utiliser les cookies du navigateur?

Merci

Répondre

1

Non, parce que techniquement, vous ne devriez pas être en mesure de les saisir. Vous pouvez toutefois créer des cookies avec une demande boucle (ce qui est un extrait d'un ancien manuscrit de la mine, il pourrait ne pas fonctionner à 100% avec des variables récentes facebooks pourraient avoir changé etc ..)

$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); 

Une fois que vous stockez les biscuits , vous pouvez juste changer l'url et partir de là.

+0

est-il donc impossible de faire ce que je suis en train de faire? –

+0

Sans forcer l'utilisateur à se connecter à nouveau via votre script et à obtenir vous-même les cookies, oui. Que vous conserviez ou non suffisamment de données pour stocker des cookies, même temporairement, sur votre serveur, je vous laisserai le soin de le faire. –

2

Essayez d'utiliser:

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

La façon dont vous obtenez les noms de cookies et leurs valeurs est à vous.

sur l'option CURLOPT_COOKIE ce qu'il dit ce PHP.NET à son sujet:

CURLOPT_COOKIE Le contenu du "Cookie:" En-tête à utiliser dans la demande HTTP. Notez que plusieurs les cookies sont séparés par un point-virgule suivi d'un espace (par exemple, « fruit = pomme; color = red »)

+0

S'il envoyait simplement des cookies aléatoires, cela fonctionnerait, mais ce qu'il veut faire, c'est saisir les valeurs des cookies d'un autre site web via le navigateur. Ceci n'est pas autorisé sauf s'il exploite des failles de sécurité. –