【问题标题】:cURL and Facebook problemscURL 和 Facebook 问题
【发布时间】:2012-06-01 02:40:52
【问题描述】:

我正在使用 cURL 访问 Facebook 页面。在本地它工作得很好,但是当我将它上传到我的开发服务器时,它会中断并返回一个空字符串。我已经检查并在服务器上安装了 cURL。这是我用来访问 facebook 的代码:

$header = array();
$header[] = 'Accept: text/json';
$header[] = 'Cache-Control: max-age=0';
$header[] = 'Connection: keep-alive';
$header[] = 'Keep-Alive: 300';
$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
$header[] = 'Accept-Language: en-us,en;q=0.5';
$header[] = 'Pragma: ';

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, 'http://facebook.com/feeds/page.php?format=json&id=135137236003');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_TIMEOUT, 20);

$result = curl_exec($ch);

curl_close ($ch);

感谢任何帮助!

【问题讨论】:

  • 是否启用了 php_curl?你可以通过 echo phpinfo() 找到,如果 curl 不存在则找到 curl 这个词
  • 您是否尝试过卷曲其他页面以排除您的服务器和facebook之间是否存在问题?
  • 是的,我尝试过冰壶谷歌(本地和开发)并且它有效。 Facebook 可以在本地工作,但不能在 dev 上工作。

标签: php facebook curl


【解决方案1】:

将接受标头更改为 */*application/json,因为 facebook 将响应标头发送为 application/json

并更改此网址

http://facebook.com/feeds/page.php?format=json&id=135137236003

http://www.facebook.com/feeds/page.php?format=json&id=135137236003

因为 facebook 将非 www 请求重定向到 www 请求。虽然它适用于您作为放置跟随位置,但它可以节省一趟往返

【讨论】:

  • 就是这样。为什么需要在本地服务器和开发服务器之间进行更改?
  • 我猜是因为不同版本的 curl :)
猜你喜欢
  • 2023-03-10
  • 2011-09-21
  • 1970-01-01
  • 2011-09-21
  • 2018-09-27
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多