Делаю телеграмм бота. Использую 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
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости