westacks / telebot

Easy way to create Telegram bots in PHP
https://westacks.github.io/telebot/
MIT License
282 stars 44 forks source link

Handle Throwable #19

Closed bosskokoss closed 3 years ago

bosskokoss commented 3 years ago

Очень нубский вопрос. Можно ли как то перехватить TelegramRequestException для всех уже существующих хендлеров.

Дописывать в каждом хендлере try..catch совсем не комильфо. Как лучше перегрузить или переопределить и какой именно класс

bosskokoss commented 3 years ago

С меня небольшой донейшн за подсказанное решение. Телега задрачивает после блокировки бота каким то юзиком и выполняет логику хендлеров чуть ли не 500 раз)

bosskokoss commented 3 years ago

А. сорян, вопрос отпал)

bosskokoss commented 3 years ago

не могу найти код что бы логировались эксепшены в случае если вылетают при их отключении в конфиг файле.

punyflash commented 3 years ago

Привет! В вашем случае, удобнее всего было бы написать свой контроллер для webhook-роута. По умолчанию контроллер выглядит так: https://github.com/westacks/telebot/blob/20ae6babf7f3e0ec2093f134e341469a2cc1eb3a/src/Laravel/Controllers/WebhookController.php#L10-L20 Вам необходимо написать свой контроллер, в котором вы обработаете ошибку вручную:

try {
    TeleBot::bot($bot)->handleUpdate();
} catch (TelegramRequestException $e) {
    Log::error($e);
}

Что-бы задать webhook вручную, необходимо указать webhook.url в конфиге: https://github.com/westacks/telebot/blob/20ae6babf7f3e0ec2093f134e341469a2cc1eb3a/src/Laravel/config/telebot.php#L34

bosskokoss commented 3 years ago

Отлично! Спасибо огромное. Закину донейт.