Тёмный

Телеграм бот на Java. Создаем проект, интегрируемся с телегой. Урок 1. 

ВходИТе, открыто!
Подписаться 2,2 тыс.
Просмотров 31 тыс.
50% 1

В этом уроке я создал проект, микросервис dispatcher на Spring boot, зарегистрировал тг-бота, интегрировался с телегой, настроил получение сообщений из чата и отправку ответа из приложения. Также, к проекту было подключено логирование (log4j) и lombok, настроено считывание данных из application.properties.
Группа-беседка в тг: t.me/enter_I7
Github с кодом проекта:
github.com/AndreyYermolenko/B...
Ресурсы компании РЕЛЭКС:
relex.ru/ru/?...
t.me/relexru
/ relex-group
relex_ru
#java #springboot #telegrambot #microservices

Опубликовано:

 

25 сен 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 125   
@nastyav8226
@nastyav8226 Год назад
Как же интересно и, главное, понятно! Спасибо за ваш труд🙂
@enter_IT
@enter_IT Год назад
Спасибо :) Надеюсь, и последующие уроки не разочаруют :)
@user-kk9dc6pd8u
@user-kk9dc6pd8u Год назад
Спасибо, отлично рассказываете, жду продолжения)
@drnbndd
@drnbndd Год назад
Большое спасибо, автор! Именно по этому видео у меня всё получилось! Впервые что-то пишу на Java, после недавнего начала изучения азов. В IDEA были проблемы с библиотеками, плагинами, зависимостями, но после этого видео - всё получилось.
@user-on8ih8qt6q
@user-on8ih8qt6q Год назад
Большое спасибо за урок, все очень доходчиво и подача классная)
@enter_IT
@enter_IT Год назад
Добро пожаловать :)
@user-hm8wx2us8l
@user-hm8wx2us8l Год назад
очень интересно послушать историю про размещенного бота на гитхабе с токеном в методе 😁 урок пушка, спасибо!
@taannik
@taannik 7 месяцев назад
Страшилки на ночь )
@user-ux6rk1ry2e
@user-ux6rk1ry2e 10 месяцев назад
Спасибо за видео!
@Mr.J248
@Mr.J248 Год назад
Мега полезные видео )
@bxneslxrd2224
@bxneslxrd2224 Год назад
иии наконец нашел что мне нужно, спасибо автор , ты молодец(обнял)
@enter_IT
@enter_IT Год назад
=))
@user-uz1nn2yh2l
@user-uz1nn2yh2l Месяц назад
Здравствуйте, на 9:12 вы запускаете бота и пишете ему сообщения. Я делаю так же, но мои сообщения не появляются в консоли. Почему это может так происходить?
@user-rm1gx2to3t
@user-rm1gx2to3t Месяц назад
Здравствуйте, такая фигня, не нашли решение?
@dzentai
@dzentai 28 дней назад
@@user-rm1gx2to3t @Component на класс TelegramBot добавьте
@alekseykhalezov9213
@alekseykhalezov9213 21 день назад
@@user-rm1gx2to3t привет! тоже бьюсь уже вторые сутки... и ничего... решения нет пока что?
@user-mq4bs3qc5g
@user-mq4bs3qc5g Год назад
спасибо за урок
@ivanstrelka3448
@ivanstrelka3448 4 месяца назад
Спасибо! огонь!
@mrpunch_777_
@mrpunch_777_ Год назад
Поехали 🚀🚀🚀
@user-by4gw7nz6m
@user-by4gw7nz6m 6 месяцев назад
Не знаю может раньше не было но надо не забыть зарегистрировать бот в конфигурациях и сделать бин
@somecapo
@somecapo 8 месяцев назад
Будут ещё проекты? Очень понравилось!!
@enter_IT
@enter_IT 8 месяцев назад
Спасибо) Этот бы доделать) Новые проекты не планирую - хочу отдельные видео записывать на разные темы - код ревью, онбординг, наставничество, организация рабочего процесса
@andreynam8084
@andreynam8084 6 месяцев назад
Добрый день, возник такой вопрос(возможно странный), можно ли использовать такой же домен как и у вас в ролике, или лучше свой где-нибудь накопать?
@withotsoul7252
@withotsoul7252 Год назад
СПАСИИИИБООО!!!!!!!!!!!!!!!
@user-qw9cg3is4j
@user-qw9cg3is4j 10 месяцев назад
Здраствуйте а какую библиотеку для телеграма использовали
@ilya9852
@ilya9852 Год назад
не знал что всё так легко
@user-kn9nq5wi5p
@user-kn9nq5wi5p Год назад
НАРОД, ИСПОЛЬЗУЙТЕ ВСЕ БИБЛИОТЕКИ ТОЙ ЖЕ ВЕРСИИ, ЧТО И В ВИДЕО, ИНАЧЕ ТАКОГО ДЕРЬМА НАХЛЕБАЕТЕСЬ В ПОСЛЕДУЮЩЕМ НАПИСАНИИ БОТА... ОСОБЕННО ЭТО КАСАЕТСЯ ВЕРСИИ SPRING BOOT STARTER PARENT.
@enter_IT
@enter_IT Год назад
эмоционально, но рационально =))
@maxpro7135
@maxpro7135 11 месяцев назад
какая версия Java используется в проекте?
@alexkorel4494
@alexkorel4494 Год назад
Ничего не понятно, но очень интересно🙂. Почему log error в конце выходит? Не было ведь ошибки. Свой код проверил, все также, а логи только от originalMessage
@enter_IT
@enter_IT Год назад
В следующем уроке объясняется)
@user-kk9dc6pd8u
@user-kk9dc6pd8u Год назад
Делал как Вы, до 9 минуты 20 секунды, но бот никак не хотел отвечать в консоль, пока не создал конфиг класс с init методом и в нем зарегистрировал созданного нами бота через класс TelegramBotsApi и его метод registerBot()
@enter_IT
@enter_IT Год назад
Хм, странно. Я по описанной в видео схеме уже не одного бота создал ) А класс TelegramBot точно наследуется от правильного класса? (import org.telegram.telegrambots.bots.TelegramLongPollingBot;) Если интересно разобраться - я бы посоветовал скачать мой код с гитхаба, подставить в application.properties ваши botname/token и попробовать запустить. Если заработает, то проверьте правильность наследования и соответствие версий библиотек )
@user-fj4tb2ym5c
@user-fj4tb2ym5c Год назад
у меня такая же проблема, подскажи как конфиг настроил
@user-fj4tb2ym5c
@user-fj4tb2ym5c Год назад
@@enter_IT если я 18 джаву использую может ли из-за этого ошибка быть? указываю родительский старте 2.5.2 ошибка , ставлю свежую версию например 3.0.0 запускается без ошибок, но бот не отвечает в консоль
@enter_IT
@enter_IT Год назад
@@user-fj4tb2ym5c с 18й джавой может быть всё, что угодно ) работоспособность бота гарантирую только на 11й =)
@user-fj4tb2ym5c
@user-fj4tb2ym5c Год назад
@@enter_IT :)) зарегистрировал бота через TelegramBotsApi и все заработало)
@enter_IT
@enter_IT Год назад
Группа-беседка в тг: t.me/enter_I7 Компания РЕЛЭКС регулярно проводит наборы начинающих специалистов БЕЗ опыта работы на стажировку по различным направлениям ИТ. Подписывайся на наши соц.сети и следи за новостями! Github с кодом проекта: github.com/AndreyYermolenko/BabushkinPogreb Ресурсы компании РЕЛЭКС: relex.ru/ru/? t.me/relexru www.linkedin.com/company/relex-group/ vk.com/relex_ru
@Dronya_33
@Dronya_33 Год назад
У меня при создании проекта вместо Maven выбор кучи Maven Archetype. Какой лучше выбрать в рамках данного курса?
@enter_IT
@enter_IT Год назад
Лучше всего пустой maven проект. В уроке я с нуля все создавал
@locbkm1269
@locbkm1269 Год назад
Не нужно смотреть список архетипов, который в колонке Generators - Maven Archetype :) Выбираешь New Progect и справа в поле Build system: Maven. В новых версия Idea этот пункт запрятали, и я, помню, тоже затупил.
@Dronya_33
@Dronya_33 Год назад
@@locbkm1269 спасибо огромное!
@user-hg2jh6jv3b
@user-hg2jh6jv3b 11 месяцев назад
@@locbkm1269 Боже, люблю целую обнимаю. Спасибо господу Богу за присутствие таких святых людей как ты в комментариях 😘😘😘
@XXX24225
@XXX24225 Год назад
Как импортировать Spring Boot в Idea ?
@MQXlM
@MQXlM Год назад
Здравствуйте, не совсем понял зачем нужно создавать модуль и зачем добавлять spring-boot-starter-parent
@enter_IT
@enter_IT Год назад
Привет! Модуль мы создали, так как это удобная "единица" деления нашего приложения на отдельные микросервисы и "библиотеки" с общим кодом. В следующих уроках создадим другие модули. А spring-boot-starter-parent нужен для того, чтобы приложение не "рассыпалось", когда обрастёт кучей зависимосте. Бывает часто такое, что библиотеки разных версий между собой конфликтуют. Чтобы подключить/обновить одну библиотеку -- нужно обновить другую и т.д. Хорошо, если о конфликте мы узнаем на этапе компиляции, но намного хуже, если она вылезет в рантайме, когда приложение уже будет где-то на проде. А родительский "помник" немного упрощает управление базовыми зависимостями -- мы указываем для него версию, а для всех прочих стартеров Spring и некоторых других библиотек/плагинов версии будут тянуться из родительского pom.xml, в котором уже подобрана правильная комбинация версий библиотек. Из описания spring-boot-starter-parent: "Parent pom providing dependency and plugin management for applications built with Maven"
@QWERTY-xy9dn
@QWERTY-xy9dn Год назад
Как мне кажется, вставки с мемами несколько излишни. Это отвлекает от той информации, которую ты говоришь. А так действительно очень доходчиво и просто. Хорошие уроки и автор)
@enter_IT
@enter_IT Год назад
Да, в дальнейших уроках вставок гораздо меньше или вообще нет)
@user-yj7fd9fw2o
@user-yj7fd9fw2o Год назад
@@enter_IT а мне кажется это наоборот убирает формализм описания и вносит разнообразие в повествование. Вставки очень даже зашли!
@Yan1249
@Yan1249 Год назад
@@user-yj7fd9fw2o Согласен с вами, мемы наоборот помогают
@saintroome7062
@saintroome7062 Год назад
При использовании аннотации ломбока @Log4j для генерации логгера появляется ошибка "The field DefaultAbsSender.log is not visible", в чем может быть проблема? (IDE Eclipse, Ubuntu)
@azatnabiullin2263
@azatnabiullin2263 3 месяца назад
Подскажите, пожалуйста. На первом же шаге (1:08) не то получается. У меня добавленные зависимости красным горят и "Cannot find declaration to go to". Почему так?
@azatnabiullin2263
@azatnabiullin2263 3 месяца назад
Отбой, опечатался🙈
@enter_IT
@enter_IT 2 месяца назад
бывает ))
@g_akoev
@g_akoev 9 дней назад
почему модуль называется dispatcher? не совсем понял. Название определяет функционал микросервиса?
@enter_IT
@enter_IT 9 дней назад
Скорее, функционал определяет название. А что?
@g_akoev
@g_akoev 9 дней назад
@@enter_IT да нет, ничего. Начал изучать микросервисную архитектуру после просмотра этого видео.
@Mr.J248
@Mr.J248 Год назад
8 минут 49 сек в методе onUpdateReceived не могу инициализировать переменную var. Может ли это быть из за java 8 версии?
@enter_IT
@enter_IT Год назад
Ага, var добавился в 10й, кажется
@Mr.J248
@Mr.J248 Год назад
@@enter_IT понял спасибо
@user-ql3rm2ci3w
@user-ql3rm2ci3w Год назад
Приветствую! Очень крутой цикл уроков, над этим бился 3 часа с java 18😄, библиотеки стонут, Logger вообще в истерике: добавил зависимость, импортирую, а метода .getLogger там нет((
@enter_IT
@enter_IT Год назад
Привет! Импортировал не ту библиотеку логгера) Удали импорт из класса и посмотри у меня в гите какой импорт должен быть (import ... вверху класса)
@user-ql3rm2ci3w
@user-ql3rm2ci3w Год назад
@@enter_IT Благодарю, но не вкуриваю: в гите у вас указан импорт lombock уже, надобавлял зависимостей на log4j-api, log4j-core, просто log4j; импортирую org.apache.log4j, не находит метод этот(
@user-ql3rm2ci3w
@user-ql3rm2ci3w Год назад
@@enter_IT не те библиотеки добавлял, троил уже, благодарю!)
@rflwnq
@rflwnq 6 месяцев назад
@@user-ql3rm2ci3w у меня та же проблема) не помнишь откуда какую добавлял либу? .getLogger не видно все никак
@youtube_user8
@youtube_user8 Год назад
7:27 При установлении анотации, класс TelegramBot не подсветился, соответственно не подключился. Подскажите, как могу решить данную проблему?
@enter_IT
@enter_IT Год назад
То, что класс не подсветился - ещё ничего не значит. Возможно, IDEA лагонула. Нужно запустить приложение и проверить заработает ли
@youtube_user8
@youtube_user8 Год назад
@@enter_IT Да, была ошибка. Я подключился через TelegramBotApi и программа запустилась
@youtube_user8
@youtube_user8 Год назад
Теперь @Value не устанавливает значиния...
@enter_IT
@enter_IT Год назад
Может ${} пропущено? Также обратите внимание, что Value засетит значение не в момент создание Java объекта, а в момент создания спринг-бина
@honey7460
@honey7460 25 дней назад
@@youtube_user8чувак, ты решил проблему с установкой Value? У меня тоже такое
@patron9336
@patron9336 Год назад
Что за ошибка десериализации в конце видео?
@enter_IT
@enter_IT Год назад
Уставревшая версия телеграмовской либы. Будет исправлено в следующем уроке.
@spark7978
@spark7978 Год назад
я если честно вообще не понимаю работу метода sendAnswerMessage(SendMessage message) типа мы кидаем наш message в метод execute( ), который что делает, для меня загадка. пожалуйста, умоляю, объясните и возможно я стану немного умнее
@enter_IT
@enter_IT Год назад
Смотри, класс TelegramBot наследуется от TelegramLongPollingBot. В TelegramLongPollingBot есть метод execute, который отправляет сообщение обратно в чат телеграмма -- это внутренний метод из телеграмовской либы -- как он работает под капотом (т.е. его реализация) нас не особо интересует. Но если очень интересно, то можно с помощью комбинации кнопок Alt + Ctrl + ЛКМ тыкнуть на название метода -- и провалиться вглубь библиотеки, заходя во все вложенные методы. Там (org.telegram.telegrambots.bots.DefaultAbsSender#sendMethodRequest) формируется обычный http запрос к серверу телеги -- никакой магии.) Такие же запросы мы делаем с другим микросервисам. А метод sendAnswerMessage -- это не более чем обертка над методом execute, которая инкапсулирует в себе (скрывает от внешнего пользователя) обработку ошибок.
@spark7978
@spark7978 Год назад
@@enter_IT спасибо класс ,все стало чуть проще))
@user-jn8op5zg5x
@user-jn8op5zg5x 4 месяца назад
почему то когда отправляю сообщение у меня не приходит ответ с телеграма, как решить проблему?
@enter_IT
@enter_IT 2 месяца назад
если кратко, то нужно деббажить ) ставить "точки останова" (деббаг поинты/бряки) и смотреть в какой момент возникает проблема
@wishmast777
@wishmast777 Год назад
если делать по видео. нестыковка идет уже на 1:15. версию 2.5.2 подсвечивает красным
@enter_IT
@enter_IT Год назад
красным подсвечивает потому что зависимость еще не скачана в ваш локальный репозиторий. Нужно после добавления зависимости в pom.xml нажать в правом верхнем углу на всплывающую кнопку "m с синим кружочком"
@MellFanChick
@MellFanChick Год назад
@@enter_IT А если нету этой буквы m с кружочком?
@enter_IT
@enter_IT Год назад
@@MellFanChick можно внести какие-нибудь правки в pom.xml -- и он появится
@user-vd8kt4td7i
@user-vd8kt4td7i 5 месяцев назад
Ошибка у меня на 9:00 , после того как пишу с телеграма боту , сообщение в консоль не приходит ко мне , у меня джава 20 сдк . Ставил ваш код что на гитхабе , тоже не хотел даже ошибка вышла при прогрузки программы. Думал может брендмауэ на виндовс блокирует сообщение, когда первый раз запустил вышло уведомление что он заблокировал и там был выбор разрешить или блокировать , я дал разрешение но сообщения всеравно не приходят. Не понимаю что не так
@gal_domkrat
@gal_domkrat 5 месяцев назад
вы решили вопрос? У меня аналогичная проблема.
@azatnabiullin2263
@azatnabiullin2263 3 месяца назад
аналогично, пока хз как решить проблему
@azatnabiullin2263
@azatnabiullin2263 3 месяца назад
Проблему решил. Использовал 11 джаву. Вообще лучше использовать всё то же самое, что и автор - так точно заработает. Также такую проблему решили в комментах, писал чел с ником @user-kk9dc6pd8u
@Melnislav
@Melnislav 3 месяца назад
Я не заметил такого момента - properties файл тогда в GIT не заливаем, отдельно его носим и подсовываем только в проект установленный локально у разработчика? Так что ли живём? =)
@enter_IT
@enter_IT 3 месяца назад
Не помню, как там было в первом уроке, но когда я запишу урок с деплоем, то переменные в конфиги будут сетиться из специального докеровского ENV файлика
@Melnislav
@Melnislav 3 месяца назад
@@enter_IT ого, супер, спасибо!
@anwon9253
@anwon9253 Год назад
9:00 У меня не работает. Прочитал в коментах что может быть из-за версий, поставил те же что и у вас, всё равно не работает... Просто при отправке сообщений в тот метод даже не заходит
@enter_IT
@enter_IT Год назад
Попробуй скачать мой код с гита, откатить на коммит первого урока и запустить у себя локально (подставив в конфиги свой токен). Если зарабоатет, то нужно сравнивать твой код и мой с гита -- где-то ошибка
@user-tp8jt6yb8e
@user-tp8jt6yb8e Год назад
получилось? А то у меня такая же проблема
@anwon9253
@anwon9253 Год назад
@@user-tp8jt6yb8e да
@Leg1tKenny
@Leg1tKenny Год назад
что можно сделать имея токен бота?
@enter_IT
@enter_IT Год назад
Подменить бэк. Запросы с данными будут идти не к тебе в приложение, а к злоумышленнику с твоим токеном
@user-cq6oz3vq8u
@user-cq6oz3vq8u Месяц назад
Работает только с SDK 11. почему так я хз)
@user-cq6oz3vq8u
@user-cq6oz3vq8u Месяц назад
Update, spring-boot-starter-parent версии 3.0.0 нормально не работает с sdk 17. версия 2.7.18 работает норм. P.S. Если брать версию 3.0.0 и старше не приходит update из telegram
@enter_IT
@enter_IT Месяц назад
Наверное, для 3-го спринг бута нужно либу телеграмма обновить
@wishmast777
@wishmast777 Год назад
не видит библиотеки на 4:45
@enter_IT
@enter_IT Год назад
Нужно сделать то же самое, что я советовал в предыдущей комменте - обновить зависимости, чтобы они скачались в проект
@wishmast777
@wishmast777 Год назад
@@enter_IT зашел в maven и там галочки поставил и выбрал compile. помогло)
@enter_IT
@enter_IT Год назад
@@wishmast777 странно, но ок =)
@wishmast777
@wishmast777 Год назад
@@enter_IT за такие быстрые ответы отдельное спасибо)
@cr1tup
@cr1tup Год назад
Интересно, но пиздец как сложно
@spark7978
@spark7978 Год назад
мда , все таки очень сложно и непонятно
@kozzztik
@kozzztik 11 месяцев назад
Здравствуйте. Все первые две минуты видео повторял за вами, но на таймкоде 2:27 у меня почему то "Disconnected from the target VM, address: '(здесь какой-то адрес типа: 123.0.0.1:1234, и я не знаю, можно ли его писать тут.)', transport: 'socket' " Прошу вас, подскажите как решить мою проблему.
@Mr.J248
@Mr.J248 Год назад
Подскажите содержимое файла log4j . properties руками прописывать?) в гите я ничего не нашел)
@enter_IT
@enter_IT Год назад
Как же нет - если есть ) github.com/AndreyYermolenko/BabushkinPogreb/blob/dev/dispatcher/src/main/resources/log4j.properties
@wishmast777
@wishmast777 Год назад
не запускается. 9:00 с ошибкой "org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'telegramBot': Lookup method resolution failed" не пойму, где то метод неправильно обозвали?
@QWERTY-xy9dn
@QWERTY-xy9dn Год назад
Возможно, была проблема с зависимостями. Попробуй поставить версии как в видео
@eduiaremchuk2917
@eduiaremchuk2917 Месяц назад
при запуске бота выдаёт ошибку Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer
@BitkinaEng
@BitkinaEng 11 месяцев назад
В самом начале ошибка при проверка старта dispatcherapplication. Мавен стоит, зависимости все подтянулись. ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefini
@sayora8288
@sayora8288 11 месяцев назад
нашли решение ?
@sayora8288
@sayora8288 11 месяцев назад
только полное копирование хмл кода с гита помогло
Далее
When You Get Ran Over By A Car...
00:15
Просмотров 3 млн
TELEGRAM BOT НА JAVA | ChatGPT БОТ
1:45:47
Просмотров 3,7 тыс.
Spring Cloud goes Cloud
2:10:21
Просмотров 32 тыс.