我对于所有版本的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,
);