Найти в Дзене
Ботовод

Учимся программировать ботов на Java без конструкторов. Часть 3.

Наш первый бот! Всем привет, друзья! Сегодня мы наконец перейдем к долгожданному написанию своего первого бота для Telegram! Долгого предисловия не будет, сразу запускаем Идею (IntelliJ IDEA) и создаем новый проект (выбирайте все так же, как и на скриншотах, имя и путь проекта можно свои): После нажатия кнопки "Finish" мы увидим наш проект. Перед нами открыт файл pom.xml, этот файл является своего рода инструкцией для сборщика проекта - Maven. Первым делом мы добавляем необходимые инструкции, чтобы сборщик загрузил необходимые нам библиотеки: После добавления ближе к правому нижнему углу появляется такой значок: Жмем на него и ждем окончания процесса загрузки, который будет отображаться в строке состояния внизу. Во время этого процесса Maven подгружает необходимые библиотеки, которые вы у него попросили в инструкции. Переходим к созданию основного файла нашего бота: Наш класс должен наследоваться от класса TelegramLongPollingBot, поэтому сразу это обозначаем: Среда разработки начинает

Наш первый бот!

Всем привет, друзья!

Сегодня мы наконец перейдем к долгожданному написанию своего первого бота для Telegram!

Долгого предисловия не будет, сразу запускаем Идею (IntelliJ IDEA) и создаем новый проект (выбирайте все так же, как и на скриншотах, имя и путь проекта можно свои):

После нажатия кнопки "Finish" мы увидим наш проект.

-2

Перед нами открыт файл pom.xml, этот файл является своего рода инструкцией для сборщика проекта - Maven.

Первым делом мы добавляем необходимые инструкции, чтобы сборщик загрузил необходимые нам библиотеки:

-3

После добавления ближе к правому нижнему углу появляется такой значок:

-4

Жмем на него и ждем окончания процесса загрузки, который будет отображаться в строке состояния внизу. Во время этого процесса Maven подгружает необходимые библиотеки, которые вы у него попросили в инструкции.

Переходим к созданию основного файла нашего бота:

-5
-6

Наш класс должен наследоваться от класса TelegramLongPollingBot, поэтому сразу это обозначаем:

-7

Среда разработки начинает ругаться, поскольку наследник класса TelegramLongPollingBot обязательно должен описывать методы onUpdateReceived(), getBotUsername() и getBotToken().

Прежде чем их описывать, давайте дадим самому телеграму узнать о нашем намерении создать бота, чтобы он дал нам нужную для его работы информацию. В телеграме находим бота @BotFather (да, ботов в телеграме создает...бот), пишем ему /start, потом /newbot, выбираем и отправляем имя, которое будет отображаться, а потом уникальный логин для бота, например:

-8

ВАЖНО!

В последнем сообщении вы также получите токен вашего бота! Никому не сообщайте этот токен, иначе дадите шанс злоумышленникам воспользоваться честным именем вашего бота!
Так выглядит токен.
Так выглядит токен.

Итак, токен мы получили, бота создали (кстати, добавьте и закрепите его себе в телеграме сразу, так будет удобнее), пора описывать необходимые методы.

getBotToken() исходя из имени будет возвращать токен нашего бота:

-10

getBotUsername() возвращает уникальное имя:

-11

И последний обязательный метод - метод, который будет отслеживать приходящие боту сообщения, самое интересное!

При появлении таких ошибок нажимайте Import class, чтобы среда автоматически добавила нужный вам класс и ошибка исчезнет.
При появлении таких ошибок нажимайте Import class, чтобы среда автоматически добавила нужный вам класс и ошибка исчезнет.

После того, как мы описали все 3 метода - ошибки исчезли, среда больше не ругается!

-13

Теперь давайте научим бота хоть что-нибудь нам отвечать. В методе onUpdateReceived мы получаем переменную update типа Update, которая содержит в себе сообщение, а уже оно содержит в себе текст сообщения, отправителя, картинки, и вообще все, что связано с этим сообщением. Давайте все эти данные получать и применять:

-14

Хорошо, данные мы получили, знаем текст сообщения, знаем от кого оно пришло, а что дальше? А дальше будем отвечать! В конец метода добавляем следующие строки:

-15

Хорошо, простейшую логику бота мы обозначили, но надо бы его еще запустить. Каждая программа на Java начинается с метода main, который служит точкой входа в программу. А еще необходимо научить нашу программу создавать объект нашего бота. Для этого добавим следующие строки:

Это называется конструктором по-умолчанию.
Это называется конструктором по-умолчанию.
А это уже та самая точка входа в программу.
А это уже та самая точка входа в программу.

Пора запускать, верно?)

-18

Нажимаем Run..., немного ждем, и идем в чат к нашему боту:

-19

Как видите, бот отвечает! А это значит, что первый шаг на пути к ботоводству сделан! Поздравляю Вас! :)

В следующих статьях мы будем усовершенствовать нашего первого бота, учить его распознавать разные команды! Впереди очень много интересного!