Комментарии 11
Уже которая статья про то ка сделать бота для телеграм и ни в одной нет примера как разбирать запросы оптимальнее. Бот для телеграм делается элементарно с помощью веб-сервера с поддержкой любого языка программирования. Хоть на C пишите. Проблема больше в разборе Update. Нужно как-то выделить нужные сообщения, исключить ненужные, проанализировать сообщения, предложить пользователю дополнить ответ и прочее. Об этом никто не пишет.
Да, я тоже такого не встречал, но здесь хотел именно обзор написать - что да как организовано. А так у меня приложен исходный код и вот класс где показано как я Update обрабатывал.. с комментариями и говорящими названиями статусов и переменных, т.е. любой программист поймёт детали. А для новичков в этом вопросе рекомендую курс, который в статье указал. Там есть подробный разбор входящего сообщения Update.
У меня у самого уже несколько лет работает бот на PHP для сайта. Но сам код кому-то показывать стыдно. Благо функций у бота немного. Но и без этого сложно в той лапше разбираться. Новый функционал ещё больше усложнит код. А чтобы переписать, нужна какая-то хорошая идея.
Я сам немного боялся код показывать, т.к. первый раз бота делал :) До статьи достаточно сильно его переработал и наполнил комментариями. Но я бы критику хотел получить, т.к., к примеру, я везде вижу, что люди используют webhook.. в моей архитектуре поможет ли он ускорить взаимодействие пользователя и бота интересно?
Вебхук ускоряет, конечно, взаимодействие, так как лонг-пуллинг всё же подразумевает либо однопоточку, либо ручками разбиение на потоки (честно не подробно смотрел код), в то время как хук всё же действует по принципу 1 апдейт - 1 запрос, но учитывая параметры машинки (1 проц 1 ОЗУ) ваше приложение просто не выживет если врубить хуки - с десяток-2 одновременных запросов и пользователи будут ждать ответ до пенсии) Тут нужно машинку тогда подороже брать и, возможно, с обычного спринга на реактивный перейти, думаю тут реактивность как раз зашла бы
Из критики - возможно, конечно, дело привычки, но gradle куда симпатичнее maven (и новее). Да и вместо application.properties лучше .yml использовать, тоже более современный и читаемый формат)
Для конфига бота также можно использовать @@ConfigurationProperties аннотацию и указать "путь" к нему внутри yml, чтобы не писать кучу @@Value
Чем схема базы данных нарисована?
Здорово! Полезный проект! Как раз начал заниматься разработкой бота (тоже следовал туториолу из вашей статьи), будет очень интересно рассмотреть ваш соурс код вечерком ???
Спасибо! Полезный бот. Настроила рассылку и мне каждый день в 11 утра приходят новости за сутки по инвестициям. 5 халявных слов пока хватает :))
Новостной Telegram бот на Java