首页 文章

cURL获取facebook api页面

提问于
浏览
0

我甚至没有丝毫知道我在这里做错了什么 . 我的头都搞砸了 .

所以基本上我想获取 https://www.facebook.com/dialog/stream.publish?access_token=bla-bla 这个页面的一些表格数据 . 我正在使用php cURL lib . 我的实际代码库就像 -

$furl='https://www.facebook.com/dialog/stream.publish?access_token=bla-bla&other-pram';
$cookie_string="";
foreach( $_COOKIE as $key => $value ) {
  $cookie_string .= "$key=$value;";
};
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$furl);
curl_setopt ($curl, CURLOPT_REFERER,'my domain');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt ($curl, CURLOPT_COOKIE,$cookie_string); 
curl_setopt($curl, CURLOPT_ENCODING, "");
$buffer = curl_exec($curl);
curl_close($curl);
//var_dump($buffer);
if (empty($buffer))
{
    print "Sorry,no content.";
}
else
{
    print $buffer;
}

这个$ furl在浏览器中运行得很好 . 但是在我的服务器中它显示了类似的东西 -

HTTP / 1.1 200 OK缓存控制:私有,无缓存,无存储,必须重新验证到期:周六,2000年1月1日00:00:00 GMT P3P:CP =“Facebook没有P3P政策 . 了解原因这里:http://fb.me/p3p“Pragma:no-cache Set-Cookie:__ utma =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:__ utmb =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:__ utmc =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:__ utmz =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:_e_Jjuf_0 =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:c1 =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:c2_top =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:ck_expr =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:ckmsg =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:datr = vG1BThzB5emc65eco5mEIJt-;到期= 2013年8月8日星期四17:26:20 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:fb_ss =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:fbs_undefined =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:locale = en_US; expires =星期二,16-Aug-2011 17:26:20 GMT;路径= /; domain = .facebook.com Set-Cookie:lsd = _G6Yd;路径= /; domain = .facebook.com Set-Cookie:PHPSESSID =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly Set-Cookie:wd =已删除;到期=星期四,01年1月1日 - 00:00:01 GMT;路径= /;域= .facebook.com; httponly内容编码:gzip内容类型:text / html; charset = utf-8 X-FB-Server:10.63.23.62 X-Cnection:close转移编码:分块日期:星期二,2011年8月9日17:26:20 GMT

所以这意味着我已经登录了 . 但是我可以从浏览器访问FB . 必须要改变cURL ??我甚至不知道从哪里开始寻找...: - [任何帮助都会非常感激 .

EDIT:code updated.

1 回答

  • 1

    如果您没有另外指定,则're using a POST method, which is usually used to SEND data to a site. Most likely you want to use a GET instead. Since GET is curl'是默认值,只需删除 CURLOPT_POST 行 .

相关问题