【问题标题】:Weird behavior of curl and facebookcurl和facebook的奇怪行为
【发布时间】:2010-05-13 22:34:24
【问题描述】:

代码如下:

$ch = curl_init( 'https://graph.facebook.com/btaylor');

curl_setopt( $ch, CURLOPT_USERAGENT, '' );

curl_setopt( $ch, CURLOPT_RETURNTRANSFER ,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

$data = curl_exec($ch);

print_r( $data) ;
curl_close($ch);

它显示了来自 facebook 的少量信息。它适用于我的本地主机,但是当我尝试在我的服务器上运行它时它不起作用,返回一个空白站点。 我尝试将此代码与 example.com 等其他网站一起使用,它可以工作,所以我想,它是因为 facebook 阻止了我的 ip(我不知道为什么它会是真的),所以我检查了它。我已经用

运行它了
curl_setopt($ch, CURLOPT_PROXY, 'myproxy');

但它仍然没有显示任何信息。我整天都在尝试修复它,但它太难了。你有什么想法吗?

【问题讨论】:

  • 服务器是否是共享服务器或切片,可以与其他人共享 IP?
  • 如果有问题,curl_exec() 将返回 false,这将在您的 print_r 中显示为空白。在你的 curl_exec 调用之后尝试if ($data === FALSE) { die("Curl error: " . curl_error()); }。永远不要假设执行以网络为中心的操作的函数调用会成功。事后总是检查错误。

标签: php facebook curl


【解决方案1】:

我猜你的服务器上没有安装 curl 和/或错误报告在你的服务器上被禁用/关闭。

编辑:好的,如果您知道 curl 已安装并且可以正常工作,您仍然需要启用错误报告。当您最终看到有关“证书验证失败”的错误时,您需要从 Facebook 导出 X.509 证书 (PEM) 并配置 curl 以信任它。

或者,如果这不是生产代码,您可以使用(极度不安全):

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

...盲目地接受证书颁发机构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-02-20
    • 1970-01-01
    • 2015-07-06
    • 2015-11-30
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多