Использование API Vimeo дает прерывистую ошибку ssl при получении списка видео

У меня проблемы с использованием PHP API Вот. Это работает, но каждый второй или третий запрос я получаю следующую ошибку:

Невозможно завершить запрос. [Ошибка подключения SSL]

Это происходит на Vimeo.php: 154. Это сразу после выполнения curl. Я попытался использовать curl самостоятельно в командной строке и получил:

curl: (35) ошибка SSL-соединения

Это ссылки:

Проблема произошла где-то в рукопожатии SSL / TLS. Вам действительно нужен буфер ошибок и прочитайте сообщение там, так как оно немного больше указывает на проблему. Это могут быть сертификаты (форматы файлов, пути, разрешения), пароли и другие.

Итак, я попробовал это с помощью PHP file_get_contents и получаю предупреждение

Предупреждение: file_get_contents (): SSL: сброс соединения по пиру

Я в некотором затруднении из-за того, откуда это приходит, и не знаю, является ли это VImeo отклонением моего запроса иногда или сервером, теряющим соединение иногда. Я пытаюсь выяснить, была ли у кого-то эта проблема раньше или есть какие-то шаги, которые я могу использовать, чтобы получить больше информации о том, что является причиной проблемы. Вот мой код

Использование file_Gets_contents

$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Authorization: bearer <Personal access token>\r\n"),
'ssl'=>array(
'allow_self_signed'=>false,
'verify_peer'=>false,
)
);
$context = stream_context_create($opts);
$userAccount = '<user account>';
$url = "https://api.vimeo.com/users/$userAccount/videos";
$unparsed_json = file_get_contents($url, false, $context);

$json_object = json_decode($unparsed_json);
var_dump($json_object);die();

Использование CURL

$userAccount = '<user account>';
$url = "https://api.vimeo.com/users/$userAccount/videos";
$curlHeader = [
'Authorization: bearer <Personal access token>',
'Accept: ' . self::VERSION_STRING,
];
$ch = curl_init();
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curlHeader);
curl_setopt($ch, CURLOPT_HTTPGET, true);
$unparsed_json = curl_exec ($ch);
// Check if any error occurred
if(curl_errno($ch))
{
$info = curl_getinfo($ch);
var_dump('Curl error: ', curl_error($ch), ' Curl error no: ', curl_errno($ch), ' Unparsed json: ', $unparsed_json, ' Info: ', $info, 'DIR CERT: ', __DIR__ . '/CERT'); die();
}
curl_close ($ch);
$json_object = json_decode($unparsed_json);
var_dump($unparsed_json);die();

Использование Vimeo.php

$userAccount = '<user account>';
$url = "https://api.vimeo.com/users/$userAccount/videos";
$client_id = '<Client ID>';
$client_secret = '<Secret>';
$lib = new Vimeo\Vimeo($client_id, $client_secret);

$lib->setToken('<Personal access token>');
$response = $lib->request($url, [], 'GET');
var_dump($response['body']);die();

Я использовал verbose on curl в командной строке Linux и увидел это:

О подключении () к порту 443 api.vimeo.com (# 0)
Попытка 104.156.85.217 … подключена
Подключен к api.vimeo.com (104.156.85.217) порт 443 (# 0)
Инициализация NSS с помощью certpath: sql: / etc / pki / nssdb
CAfile: «местоположение файла сертификата»
CApath: нет
Ошибка NSS -5961
Закрытие соединения № 0
Ошибка SSL-соединения

curl: (35) ошибка SSL-соединения

0

Решение

Я обнаружил, что проблема в том, что веб-фильтр блокирует. Я понял, что использовал openssl напрямую:

[имя пользователя @ имя пользователя сервера] $ openssl s_client -connect: 443 -msg
CONNECTED (00000003)
‘>>> TLS 1.2 Handshake [длина 00f4], ClientHello
пишут: ERRNO = 104

нет сертификата сверстника

Имена CA сертификатов клиентов не отправлены

SSL рукопожатие прочитало 0 байтов и записало 249 байтов

Новый, (НЕТ), Шифр ​​есть (НЕТ)
Безопасное повторное согласование НЕ поддерживается
Сжатие: НЕТ
Расширение: НЕТ

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]