我对于所有版本的php-sdk都遇到相同的ssl错误,我增加了超时值,但仍然遇到相同的问题,但是当我在不同的服务器上尝试相同的示例代码时,它运行良好。我认为可能存在与服务器相关的问题,例如lib curl或openssl版本,您能帮我吗?

最佳答案

两周前,我在使用curl 7.24的Archlinux上运行两台计算机时遇到了相同的问题。

默认情况下,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,
);

10-07 16:48