[英]php_curl not able to run https (Google+ API)
我正在嘗試使用以下代碼從Google+獲取份額計數:
function get_gplus_shares($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$curl_results = curl_exec ($curl);
curl_close ($curl);
$json = json_decode($curl_results, true);
return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
}
在我的本地測試環境上可以正常工作,但在實際環境中不能正常工作。 我已經使用sudo apt-get install curl
和sudo apt-get install php5-curl
安裝了php_curl
,效果很好。 還通過sudo wget http://curl.haxx.se/ca/cacert.pem -O /usr/lib/ssl/certs/cacert.pem
添加了cacert.pem
。 但似乎不起作用。 我真的不知道從哪里開始。
錯誤消息 -來自Apache錯誤日志。
RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
-但添加cacert.pem
后,此錯誤似乎已解決。
PHP Notice: Undefined index: result
-PHP錯誤,因為函數的結果為空。
[ssl:error] [pid 20743] AH02032: Hostname **IP-ADDRESS** provided via SNI and hostname **mydomain.com** provided via HTTP are different
-剛看到此錯誤,不確定是否相關。
您能否通過添加以下兩個選項來進行檢查
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
檢查以下是否有效:
<?PHP
// connect via SSL, but don't check cert
$handle=curl_init('https://www.google.com');
curl_setopt($handle, CURLOPT_VERBOSE, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
$content = curl_exec($handle);
echo $c
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.