ページ

2014-05-23

Codebird-php (2.4.1)でエラーが出てツイートできない

Codebirdを新しくしようとソースをアップデートしたらいくつか変更があったのと下記のエラーがでたので対処。

PHP Fatal error:  Uncaught exception 'Exception' with message 'Error 60 while validating the Twitter API certificate.

Stack traceが下記のように出た。

Stack trace:
#0 codebird.php(294): Codebird\Codebird->_callApi('POST', 'statuses/update', 'statuses/update', Array, false, false)
#1 twi_test.php(17): Codebird\Codebird->__call('statuses_update', Array)
#2 twi_test.php(17): Codebird\Codebird->statuses_update(Array)
#3 {main}
thrown in codebird.php on line 923

codebird.phpの923行の何行か前を見てみると

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . '/cacert.pem');

CURLの設定部分がある。
そこでCA証明書の検証と証明書ファイルの指定がしてある。
そんなとこに証明書はないのでエラーになっていた。
一番下の行をコメントアウトしてデフォルトの場所を参照してもらう。

または、証明書の検証をしないでも動作する。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);)
twitterは、基本SSLでの通信なのでひっかかったのであろう。

追記
新しいバージョン(2.5.0)には、cacert.pemが一緒に入っていた。
で、今度はError 77と出た。ところが、SSL_VERIFYPEERをfalseにしてもエラーとなってしまう。

Codebird-phpでError 77のでる件



0 件のコメント :