Делаю телеграмм бота. Использую laravel и Telegram Bot SDK. Сегодня столкнулся с проблемой, что бот рекурсивно отправлял пользователю один и тот же ответ скриншот. Либо просто сообщение 'Считаю'.
\Telegram::sendMessage([
'chat_id' => $chatid,
'text' => "Считаю...",
]);
$controller = $this->getReportControllerName($text);
$method = $this->getReportMethodName($text);
$report_data = new $controller();
$report_data = $report_data->$method($chatid);
try
{
\Telegram::sendMessage([
'chat_id' => $chatid,
'text' => $report_data,
]);
}
catch (TelegramResponseException $e)
{
$errorData = $e->getResponseData();
if ($errorData['ok'] === false) {
\Telegram::sendMessage([
'chat_id' => '123456789',
'text' => 'There was an error for a user. ' . $errorData['error_code'] . ' ' . $errorData['description'],
]);
}
}`
Блоки try-catch
поставил уже после выявления проблемы. В логах присутствует 499 и 500 ошибки. Вопрос, по обработки ошибок, чтобы избежать спама от бота. Стоит ли в других местах отлавливать ошибки. Как можно логировать, в том числе код состояния сервера?
Никого не удивлю, наверное, но конечно стоит.
Для логирования используйте стандартный функционал от Laravel:
Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);
А на счет логирования кода состояния сервера, вы сами выше написали, что просмотрели логи. Если вы имели ввиду онлайн, чтобы можно было быстро среагировать, посмотрите к примеру на https://www.statuscake.com
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Друзья! В цикле заполняю таблицуВ каждой ячейке по чекбоксу
Хотелось бы услышать мнение сообщества по поводу правильного оформления классов при наследованииЧтобы не лить воду, перейду сразу к примеру