簡體   English   中英

php_curl無法運行https(Google+ API)

[英]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 curlsudo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM