远程登录Facebook帐户

时间:2010-06-28 06:25:54

标签: php facebook curl

出于我的项目目的,我需要远程登录我的Facebook帐户并从那里检索一些信息。出于登录目的,我正在使用PHP的cURL库。在执行代码时,Facebook页面要求我在我已经启用的浏览器上启用cookie。代码有问题吗?任何人都可以帮助我远程登录我的帐户吗?我是新手,如果有任何帮助,我会非常感激。 这是代码

<?php

 //create array of data to be posted

 $post_data['email'] = '*********';

 $post_data['password'] = '**********';

 $post_data['action'] = 'login';


 //traverse array and prepare data for posting 

 foreach ( $post_data as $key => $value) {

  $post_items[] = $key . '=' . $value;

 }

 //create the final string to be posted using implode()

 $post_string = implode ('&', $post_items);



 //create cURL connection

 $ch = curl_init('https://login.facebook.com/login.php?');



 //set options

 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

 curl_setopt($ch, CURLOPT_USERAGENT, 
   "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);



 //set data to be posted

 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);



 //perform our request

 $result = curl_exec($ch);



 print_r($result);



 //close the connection

 curl_close($ch);

 ?>

1 个答案:

答案 0 :(得分:4)

要使用curl的cookie,您需要指定一个“cookie jar”,这是cookie应该存储和加载的地方。您可以使用CURLOPT_COOKIEFILECURLOPT_COOKIEJAR选项执行此操作。这样的事情应该这样做:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'facebook_cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'facebook_cookies.txt');

查看http://php.net/curl_setopt了解详情。

另外,您也可以将$post_fields作为数组传递给CURLOPT_POSTFIELDS,因此您实际上不必自己生成查询字符串。如果你想这样做,还有一个http_build_query()函数可以做到这一点。这与您发布的问题无关。