Обработчик ошибок telegram bot

250
20 октября 2017, 15:28

Делаю телеграмм бота. Использую 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 ошибки. Вопрос, по обработки ошибок, чтобы избежать спама от бота. Стоит ли в других местах отлавливать ошибки. Как можно логировать, в том числе код состояния сервера?

Answer 1

Никого не удивлю, наверное, но конечно стоит.

Для логирования используйте стандартный функционал от 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

READ ALSO
Как определить какой checkbox выбран?

Как определить какой checkbox выбран?

Друзья! В цикле заполняю таблицуВ каждой ячейке по чекбоксу

231
Как перевести сообщения модулей в Yii2?

Как перевести сообщения модулей в Yii2?

ЗдравствуйтеИспользую Yii2 Basic

255
как вывести данные из массива в wordpress

как вывести данные из массива в wordpress

Вставляю этот код на страницу в WP

174
Статические свойства и наследование в PHP

Статические свойства и наследование в PHP

Хотелось бы услышать мнение сообщества по поводу правильного оформления классов при наследованииЧтобы не лить воду, перейду сразу к примеру

250