致命错误:在base.facebook.php中的facebook api 3.0.0中未捕获的CurlException SSL连接超时

时间:2011-09-22 08:26:58

标签: facebook

我得到相同的ssl错误的所有版本的php-sdk我增加了超时值但是同样的问题但是当我在不同的服务器上尝试相同的示例代码时它运行良好。我认为可能有一些服务器相关的问题,比如lib curl或openssl的版本,你能帮助我吗?

1 个答案:

答案 0 :(得分:8)

两周前我遇到了同样的问题,两台计算机在Archlinux上运行,卷曲7.24。

Curl默认情况下使用SSL版本3,但在我的计算机上看起来像https://graph.facebook.com的卷曲在超时时结束,而当我特意要求curl使用SSL版本3时,它起作用。所以这里我是如何解决的问题:

在Facebook PHP SDK的base_facebook.php中,替换:

public static $CURL_OPTS = array(
  CURLOPT_CONNECTTIMEOUT => 10,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 60,
  CURLOPT_USERAGENT => 'facebook-php-3.1',
);

通过:

public static $CURL_OPTS = array(
  CURLOPT_CONNECTTIMEOUT => 10,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 60,
  CURLOPT_USERAGENT => 'facebook-php-3.1',
  CURLOPT_SSLVERSION => 3,
);