今天在本機開發好的網站,放上客戶的伺服器的時候,Facebook的登入居然失敗,怎樣debug都是一樣的問題:
Fatal error: Uncaught CurlException: 35: Unknown SSL protocol error in connection to graph.facebook.com:443 thrown in ....省略.../src/base_facebook.php on line 974
原本以為是974行 catch curl 問題,搞三個多小時,原來只要加一段設定在,base_facebook.php就正常了。
解決方法:
打開 base_facebook.php
找到
/**
* Default options for curl.
*/
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.2',
);
在array陣列中,加入 CURLOPT_SSLVERSION => 3, 設定curl的版本,就解決了!天啊這樣簡單!
加入後如下
/**
* Default options for curl.
*/
public static $CURL_OPTS = array(
CURLOPT_SSLVERSION => 3,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.2',
);
存檔後,Facebook php SDK就正常了^^(灑花~~
客戶環境:
CentOS 6.3
XAMPP 1.8.1
參考文章:http://pastebin.com/xjuwN5kK
1 則留言:
此方法没有解决我的问题,不知道是什么原因,下面张贴我的解决方案,希望对别人有用:
找到
$opts[CURLOPT_SSLVERSION] = 3;
改为
$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1_0;
張貼留言