我需要将此cURL命令转换为PHP 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);
错误我正在
SSL证书问题,验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
然而它适用于标准curl命令
答案 0 :(得分:2)
您需要为证书链提供curl,以便验证Twitter的SSL证书是否有效。为此,请下载必需的证书签名from here并将其保存到普通文件中(我假设您将其命名为cacert.pem
)。
然后,在发出请求之前,将CURLOPT_CAINFO
设置为指向此文件:
// assumes file in same directory as script
curl_setopt($ch, CURLOPT_CAINFO, 'cacert.pem');
明确启用SSL证书验证而不依赖于默认设置也是一个好主意:
curl_setopt($ch, CURLOPT_VERIFYPEER, true);