2012-09-17 15 views
5

PHPのcURLにcurlコマンドラインを翻訳:私はPHPのcURLコードにこのcurlコマンドを翻訳する必要が

> curl --get 'https://api.twitter.com/1/followers/ids.json' --data 
> 'cursor=-1&screen_name=somename' --header 'Authorization: OAuth 
> oauth_consumer_key="key", oauth_nonce="nonce", 
> oauth_signature="signature", oauth_signature_method="HMAC-SHA1", 
> oauth_timestamp="timestamp", oauth_token="token", oauth_version="1.0"' 
> --verbose 

私はこれを試してみましたが、動作していないよう:

> $ch = curl_init(); 
> curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth oauth_consumer_key="key", oauth_nonce="nonce", oauth_signature="signature", oauth_signature_method="HMAC-SHA1", oauth_timestamp="timestamp", oauth_token="token", oauth_version="1.0"')); 
> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
> curl_setopt($ch, CURLOPT_VERBOSE, 1); 
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
> curl_setopt($ch, CURLOPT_HTTPGET, 1); 
> curl_setopt($ch, CURLOPT_URL, 'https://api.twitter.com/1/users/show.json?cursor=-1&screen_name=somename'); 
> $page = curl_exec($ch); 
> curl_close($ch); 

それは

標準curlコマンドで動作しますが、エラーが私は

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

を取得しています

+0

はその後、要求を行う前に、このファイルを指すようにCURLOPT_CAINFOを設定しましたhttp://php.net/manual/en/book.curl.php –

+0

エラーはどうなっていますか? –

+0

SSL証明書の問題で、CA証明書がOKであることを確認してください。詳細:エラー:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。** **標準のカールコマンドで動作します** – loudislav

答えて

2

TwitterのSSL証明書が有効であることを証明する証明書チェーンをカールする必要があります。これを行うには、必要な証明書の署名from hereをダウンロードしてプレーンファイルに保存します(名前はcacert.pemとします)。

// assumes file in same directory as script 
curl_setopt($ch, CURLOPT_CAINFO, 'cacert.pem'); 

それが明示的に代わりにデフォルトの設定に依存するのSSL証明書の検証を有効にするのも良い考えです:

curl_setopt($ch, CURLOPT_VERIFYPEER, true); 
+0

このエラーが発生しました:_setting certificate verify locations:CAfile:cacert.pem CApath:none_それで? – loudislav

+0

@loudislav:ええ、 'CURLOPT_CAPATH'を' .'に設定する必要があるかもしれません(カレントディレクトリの証明書ファイルを想定しています)。また、証明書ファイルのパスが正しいことを3回確認してください。 – Jon

+0

ええ、私はそれを解決しました。ありがとう! – loudislav

関連する問題