У меня есть бот, который работает на вебхуке и отправляет некоторые запросы, они долго обрабатываются и бот получает ошибки по типу
Wrong response from the webhook: 523
или
Read timeout expired
, затем телеграм пытается несколько раз заново обработать запросы, из-за чего они копятся и лишний раз срабатывают
Я хочу после получения таких ошибок вернуть 200 код, чтобы Телеграм не пытался заново отправить запрос:
// Здесь создается первоначальный запрос
$curl = curl_init($settings->url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
// Здесь отлавливаются ошибки с вебхука
$webhook_url = 'https://api.telegram.org/bot' . BOT_TOKEN . '/getWebhookInfo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $webhook_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$json_result = json_decode($result, JSON_OBJECT_AS_ARRAY);
switch ($json_result['result']['last_error_message']) {
case 'Wrong response from the webhook: 523 ':
send_message($chat_id, 'Бот поймал 523 ошибку');
http_response_code(200);
break;
case 'Read timeout expired':
send_message($chat_id, 'Время ожидания истекло');
http_response_code(200);
break;
}
curl_close($ch);
curl_close($curl);
Я попытался с помощью
http_response_code(200)
вернуть 200 код, бот заходил в нужные
case
при ошибках и выводил информацию о них, но ошибки не перестали приходить