Ещё раз хотелось бы очень поблагодарить вас за проделанную работу и за то, что вы ей поделились. Только благодаря вашим урокам я успел вовремя написать своего бота и не завалить учебный проект. Сначала мучился и пытался изобрести свой велосипед (имею в виду архитектуру самого проекта), но как только увидел ваш вариант, то понял, что велосипед уже готов :3 Идея с конечными автоматами и классом, который распределяет запросы по соответствующим хэндлерам - огонь! В процессе создания проекта улучшил вашу идею и перенёс обработку CallbackQuery в хэндлеры, дабы всё совсем было по красоте. В общем, ещё раз спасибо огромное! P.S. Кстати, если не ошибаюсь, то где-то в ваших видео слышал про планируемые видео по Java FX. Если так, то очень интересно было бы посмотреть!
Привет, рад что видео оказалось полезным) А куда задеплоил бота ? Я сегодня смотрел на Amazon AWS и GoogleCloud - показались менее дружелюбными по интерфейсу чем heroku, и нужно еще там повозиться с HTTPS, а у heroku сразу есть и бесплатно.
Мне деплой в принципе не требовался, поэтому я бота только локально запускал. Кстати, для интересующихся есть забавная фича. Если ваш провайдер в состоянии предоставить вам ipv6, то можете попробовать подключить, и тогда вам не придётся мучиться с прокси для подключения к Telegram, ибо, по ходу дела, роскомпозор пока что ещё не умеет блокировать по ipv6. Кстати, Сергей, я как-то заметил в ваших видео, что у вас в Telegram переписка есть с EPAM. Вы рассматриваете возможность трудоустройства туда? Если да, то интересно было бы услышать ваши соображения за/против.
теперь userId long и вся эта шляпа перестает работать если заходит юзер с айдишником больше инта. А при попытке использования свежей библиотеки Telegram Bots Spring Boot Starter перестают работать некоторые импорты и другое. Капец....
Подскажите пожалуйста как сделать листовку в боте. Вот например как в баду. То есть показываем девушку с низу фото описание и кнопки вперёд назад если есть предидущая и нравиться. При нажатии назад или вперёд показываешься следующая девушка или предидущая при этом сообщений больше не становиться а удаляеться как бы это и на его месте показывается новое
@Дмитрий Цыбульский Сильно не разбирался, но у heroku по-ходу проблема с classpath, когда речь идет именно об изображении. Можно воспользоваться костылем: вместо SendPhoto sendPhoto = new SendPhoto().setPhoto(image); использовать SendPhoto sendPhoto = new SendPhoto(); sendPhoto.setPhoto(new InputFile("--------appname------.herokuapp.com/images/file_logo.jpg")); при условии, что file_logo.jpg лежит в main esources\static\images\
Спасибо за уроки, оказались для меня очень полезными, хотел бы узнать, а как вытягивает данные из Монго? Допустим в базе уже есть много анкет, и я хочу вытянуть конкретные данные по имени и фамилии! Нужно ли подключить Hibernate для простоты, или же можно и без, написав медот и там уже выполнять запросы к конкретным полям?
@@nadirmusaev3508 тоже интересно есть ли в телеграме фронтендовая валидация по типу как в HTML5, но бекендовую валидацию вам надо все равно делать в коде для надежности с помощью реджекс сервисов или хибернейт аннотаций
Сергей, спасибо за уроки! Хотелось бы на видео видеть как ты пошагово ведёшь разработку, с какими проблемами сталкиваешься в процессе, как решаешь, а не уже готовый рабочий вариант. Видео будут длинные и сложные в монтаже, но более познавательные. Подскажи, планируешь ли ты ещё уроки по Spring, например - разработка Web/Rest приложения?
Привет) сейчас пока много дел и сам тоже занят трудоустройством, если что будет интересное еще запишу материал. В своих уроках я рассказывал с какими трудностями можно столкнуться и как решить. Обычно я решаю так: есть какая то задача, я примерно прикидываю какой это будет проект, а если что не понятно то рою в интернете и адаптирую под себя- вот и все)
@@СергейВячеслаев да от этих уроков по spring rest уже тошнит. Че не пытаешься найти - натыкаешься на них. Если фишку какую-то смотрю, то проматываю когда он создаст свой rest с нуля. Их уже кишмя кишит этих уроков.
Спасибо большое за уроки❤, кто-то может пожалуйста подсказать как правильно перенести обработку CallbackQuery в хэндлеры, а то пытаюсь улучшить бота и в TelegramFacade уж очень много места занимают кнопки. Пытался сделать по аналогии с BotStateConext который выбирает нужный хэндлер, но вместо состояний бота ищет по значению CallBackData кнопки, где первым словом указано тип для выбора хэндлера а вторым уже уникальное название кнопки. Но из-за этого не могу одновременно отправить ответное сообщение пользователю и запустить нужный хэндлер когда нажатие кнопки меняет состояние бота. Помогите пожалуйста🙏, или подскажите где это можно посмотреть. Спасибо.
Привет. На сколько я понимаю вашему боту от сервера телеграма приходят post запросы, где вы их мгновенно обрабатываете и в "200" отправляете обратный ответ. А как сделать так, чтобы бот, к примеру, каждые 10 минут сам отправлял серверу запросы?
А ты случаем не разбирал как искать документы Mongodb по его массиву возможных значений? типа у объекта есть массив с набором слов и если есть совпадение возвращает объект. мои поиски остановились на @Query("{ 'ask' : ?0 }") и в целом это сработало, но он не возвращает null если нет совпадений, а продолжает искать .
Сергей хотелось бы увидеть видео как сделать чтобы бот получал информацию из какого либо сайта,например твой ржд бот разобрать,ты об этом толком не говорил.
Привет, мой РЖД бот не парсит сайт, он работает с REST api РЖД, получает ответы в видео JSON и его уже парсит. Сами запросы к РЖД есть в файле application.properties. Если у меня будет задача парсинга инфы с какого либо сайта то запишу урок, пока что занят)
Здравствуйте, можете рассказать про heroku? Я правильно понимаю, что бесплатно сейчас можно получить 450 часов + 550 часов если добавить карту, а каждый месяц часы обновляется? Еще вопрос про дино, если мой бот должен проработать 1,5 месяцев, стоит ли мне для этого брать платный тариф?
Привет) у меня бесплатный план, но я добавил карту просто чтобы получить 1000 часов в месяц, бот работает 24/7 уже 5 месяцев, все норм. Платный тариф надо читать что он дает, они пишут что не отключают эти Дино, но по факту у них тоже бывают технич сбои и они могут перезапускать web приложения. Начни с бесплатного плана а дальше смотри на потребности.
@@montesquieu_ Привет) сейчас занят работой, когда было время и свежи знания по ботам записал видео. По long polling vs webhook так и загугли, очень много статей, успехов !
Ух у меня подгорело!!! Для тех кто не сталкивался - обязательно обратите внимание на то, какой пароль вам автоматически сгенерируется для пользователя с доступом к базе данных. Если там окажется специальный символ - всё может пойти не так ... Вроде и понятно, но сразу не обратил внимание (
Очень хорошие уроки! Спасибо!
Ещё раз хотелось бы очень поблагодарить вас за проделанную работу и за то, что вы ей поделились. Только благодаря вашим урокам я успел вовремя написать своего бота и не завалить учебный проект. Сначала мучился и пытался изобрести свой велосипед (имею в виду архитектуру самого проекта), но как только увидел ваш вариант, то понял, что велосипед уже готов :3 Идея с конечными автоматами и классом, который распределяет запросы по соответствующим хэндлерам - огонь! В процессе создания проекта улучшил вашу идею и перенёс обработку CallbackQuery в хэндлеры, дабы всё совсем было по красоте. В общем, ещё раз спасибо огромное!
P.S. Кстати, если не ошибаюсь, то где-то в ваших видео слышал про планируемые видео по Java FX. Если так, то очень интересно было бы посмотреть!
Привет, рад что видео оказалось полезным) А куда задеплоил бота ? Я сегодня смотрел на Amazon AWS и GoogleCloud - показались менее дружелюбными по интерфейсу чем heroku, и нужно еще там повозиться с HTTPS, а у heroku сразу есть и бесплатно.
Мне деплой в принципе не требовался, поэтому я бота только локально запускал. Кстати, для интересующихся есть забавная фича. Если ваш провайдер в состоянии предоставить вам ipv6, то можете попробовать подключить, и тогда вам не придётся мучиться с прокси для подключения к Telegram, ибо, по ходу дела, роскомпозор пока что ещё не умеет блокировать по ipv6.
Кстати, Сергей, я как-то заметил в ваших видео, что у вас в Telegram переписка есть с EPAM. Вы рассматриваете возможность трудоустройства туда? Если да, то интересно было бы услышать ваши соображения за/против.
Пока что прохожу там тренинг java core) с удовольствием бы поработал, если предложат.
Теоретическую часть или уже лабу?)
@@FalkonFalkonovi4 лаба впереди если возьмут)
Как это серия уроков по боту заканчивается? А как же обещание в первом уроке показать процесс сборки проекта и деплоя на хироку?
теперь userId long и вся эта шляпа перестает работать если заходит юзер с айдишником больше инта. А при попытке использования свежей библиотеки Telegram Bots Spring Boot Starter перестают работать некоторые импорты и другое. Капец....
Подскажите пожалуйста как сделать листовку в боте. Вот например как в баду. То есть показываем девушку с низу фото описание и кнопки вперёд назад если есть предидущая и нравиться. При нажатии назад или вперёд показываешься следующая девушка или предидущая при этом сообщений больше не становиться а удаляеться как бы это и на его месте показывается новое
почему в пропертис только 3 строчки кода и у вас запустилось приложение ?
Сергей подскажите, почему при деплое на хероку, бот не может найти картинку из ресурсов? Локально отрабатывает все отлично.
У меня та же проблема, не получилось решить ?
@Дмитрий Цыбульский Сильно не разбирался, но у heroku по-ходу проблема с classpath, когда речь идет именно об изображении. Можно воспользоваться костылем: вместо SendPhoto sendPhoto = new SendPhoto().setPhoto(image); использовать SendPhoto sendPhoto = new SendPhoto();
sendPhoto.setPhoto(new InputFile("--------appname------.herokuapp.com/images/file_logo.jpg")); при условии, что file_logo.jpg лежит в main
esources\static\images\
Спасибо за уроки, оказались для меня очень полезными, хотел бы узнать, а как вытягивает данные из Монго? Допустим в базе уже есть много анкет, и я хочу вытянуть конкретные данные по имени и фамилии! Нужно ли подключить Hibernate для простоты, или же можно и без, написав медот и там уже выполнять запросы к конкретным полям?
Привет загугли spring data queries mongo )
@@СергейВячеслаев Сергей добрый вечер, а валидацию полей как можно реализовать? Создать отдельный обработчик или в телеграм есть свои классы?
@@nadirmusaev3508 тоже интересно есть ли в телеграме фронтендовая валидация по типу как в HTML5, но бекендовую валидацию вам надо все равно делать в коде для надежности с помощью реджекс сервисов или хибернейт аннотаций
Сергей, спасибо за уроки! Хотелось бы на видео видеть как ты пошагово ведёшь разработку, с какими проблемами сталкиваешься в процессе, как решаешь, а не уже готовый рабочий вариант. Видео будут длинные и сложные в монтаже, но более познавательные. Подскажи, планируешь ли ты ещё уроки по Spring, например - разработка Web/Rest приложения?
Привет) сейчас пока много дел и сам тоже занят трудоустройством, если что будет интересное еще запишу материал. В своих уроках я рассказывал с какими трудностями можно столкнуться и как решить. Обычно я решаю так: есть какая то задача, я примерно прикидываю какой это будет проект, а если что не понятно то рою в интернете и адаптирую под себя- вот и все)
@@СергейВячеслаев да от этих уроков по spring rest уже тошнит. Че не пытаешься найти - натыкаешься на них. Если фишку какую-то смотрю, то проматываю когда он создаст свой rest с нуля. Их уже кишмя кишит этих уроков.
Спасибо большое за уроки❤, кто-то может пожалуйста подсказать как правильно перенести обработку CallbackQuery в хэндлеры, а то пытаюсь улучшить бота и в TelegramFacade уж очень много места занимают кнопки. Пытался сделать по аналогии с BotStateConext который выбирает нужный хэндлер, но вместо состояний бота ищет по значению CallBackData кнопки, где первым словом указано тип для выбора хэндлера а вторым уже уникальное название кнопки. Но из-за этого не могу одновременно отправить ответное сообщение пользователю и запустить нужный хэндлер когда нажатие кнопки меняет состояние бота. Помогите пожалуйста🙏, или подскажите где это можно посмотреть. Спасибо.
Привет. На сколько я понимаю вашему боту от сервера телеграма приходят post запросы, где вы их мгновенно обрабатываете и в "200" отправляете обратный ответ. А как сделать так, чтобы бот, к примеру, каждые 10 минут сам отправлял серверу запросы?
А ты случаем не разбирал как искать документы Mongodb по его массиву возможных значений?
типа у объекта есть массив с набором слов и если есть совпадение возвращает объект. мои поиски остановились на @Query("{ 'ask' : ?0 }") и в целом это сработало, но он не возвращает null если нет совпадений, а продолжает искать .
Сергей хотелось бы увидеть видео как сделать чтобы бот получал информацию из какого либо сайта,например твой ржд бот разобрать,ты об этом толком не говорил.
Привет, мой РЖД бот не парсит сайт, он работает с REST api РЖД, получает ответы в видео JSON и его уже парсит. Сами запросы к РЖД есть в файле application.properties. Если у меня будет задача парсинга инфы с какого либо сайта то запишу урок, пока что занят)
Здравствуйте, можете рассказать про heroku?
Я правильно понимаю, что бесплатно сейчас можно получить 450 часов + 550 часов если добавить карту, а каждый месяц часы обновляется? Еще вопрос про дино, если мой бот должен проработать 1,5 месяцев, стоит ли мне для этого брать платный тариф?
Привет) у меня бесплатный план, но я добавил карту просто чтобы получить 1000 часов в месяц, бот работает 24/7 уже 5 месяцев, все норм. Платный тариф надо читать что он дает, они пишут что не отключают эти Дино, но по факту у них тоже бывают технич сбои и они могут перезапускать web приложения. Начни с бесплатного плана а дальше смотри на потребности.
ещё будут уроки?
Привет, по Телеграм ботам если что новое появится запишу.
@@montesquieu_ Привет) сейчас занят работой, когда было время и свежи знания по ботам записал видео. По long polling vs webhook так и загугли, очень много статей, успехов !
в гитхабе код пустой почти
Нужно сделать checkout в ветку урока
👍👍
Ух у меня подгорело!!! Для тех кто не сталкивался - обязательно обратите внимание на то, какой пароль вам автоматически сгенерируется для пользователя с доступом к базе данных. Если там окажется специальный символ - всё может пойти не так ... Вроде и понятно, но сразу не обратил внимание (