Перевести командную строку cURL в PHP cURL

107
5

Мне нужно перевести эту команду 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

спросил(а) 2021-01-25T17:03:18+03:00 5 месяцев назад
1
Решение
77

Вам нужно предоставить curl с цепочкой сертификатов, которая позволит ему проверить SSL-сертификат Twitter как действительный. Для этого загрузите необходимые подписываемые сертификаты отсюда и сохраните их в простой файл (предположим, вы называете его 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);

ответил(а) 2021-01-25T17:03:18+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема