For 21 kagort )
Загрузка
Запуск бота
Настройка квиза
Контакты
Этот бот я написал в рамках своего ПЭТ проекта после получения диплома Java разработчика в Yandex practicum
На данный момент бот использует стеки и версии библиотек:
Amazon corretto : 17
Spring Boot : 3.1.0
Telegrambots : 6.8.0
TelegramLongPollingBot
В планах - дальнейшее развитие. Roadmap по развитию пришлю по запросу.
Если у вас есть желание поучаствовать в развитие проекта, контакты внизу страницы ))
#Использование
Бот на данный момент не является коммерческим проектом, поэтому разрешено его использование без ограничений
(кроме случаев, предусмотренных законодательством РФ)
В виде репозитория
Клонируем репозиторийgit clone git@github.com:alex-from-90/Java-Quiz-bot.git
Скачиваем на свой локальный компьютер
git pull
В виде zip архива
https://github.com/alex-from-90/Java-Quiz-bot/archive/refs/heads/master.zip
Распаковываем архив в любое место на локальном компьютере и открываем в intelligent idea
Настройка
Для работы бота требуется токен, полученный от телеграмма.
Что бы получить токен, заходим в телеграмм и в строке поиска вводим - botfather
После приветствия появятся команды управления вашими ботами
выбираем
/newbot - create a new bot
Придумываем и отправляем имя для своего бота
В следующем шаге нужно придумать nic бота, по которому пользователи смогут обращаться к нему.
Ник обязательно должен содержать слово _bot в конце
После успешного создания бота, вам будет выдан токен
Use this token to access the HTTP API:
какой то набор символов
Записываем или копируем этот набор и вставляем в фаил
config.properties
Путь к файлу:
bot -> src - > main -> resources
bot.name = Ник бота (которое заканчивается на _bot) bot.token = Полученный токен bot.chatId = если планируете разместить бота в группе, получите id группы (можно оставить пустым) bot.messageThreadId = Если группа содержит темы, получите id темы (можно оставить пустым)
Для запуска бота достаточно перейти в intelligent idea в папку bot -> src - > main -> java -> com.quiz.bot
и запустить BotApplication.java
Далее находите своего бота в поиске телеграмм по нику и проверяете работоспособность ))
Добавление бота в группу происходит по простому поиску бота по нику.
Развертывание бота в докере
Для удобства развертывания в докере вы можете использовать docker-compose.yml
который находится в корне проекта.
- Открываем проект с ботом в intelligent idea
- Выполняем в командной строке
maven clean package
- запускаем на исполнение docker-compose.yml
(Не забудте выбрать current file при запуске, что б конфигурация run запустила именно этот фаил, а не весь проект)
Образ докера создастся и запустится автоматически
Для непрерывной работы бота рекомендуется сделать деплой бота на сервер. Подойдёт любой с возможностью деплоя java или установкой docker`a
Создание вопросов для квиза
Вопросы с ответами для квиза пока что находятся в файле polls.json Путь к квизам:bot -> src - > main -> resources
Квизы представляют собой обычный json, но имеется ряд ограничений.
Вопрос или ответ не должен превышать 300 символов. Это ограничение телеграмма на викторины
Старайтесь не использовать спец символы в вопросах или ответах.
Если же они нужны по условию, добавьте их в метод
escapeSpecialCharacters
Шаблон формата json
[ { "question": "Какой метод используется для вывода текста в консоль?", "options": [ "print()", "console.log()", "System.out.println()", "echo()" ], "correctAnswer": "System.out.println()" }, { "question": "Второй вопрос:", "options": [ "1 ответ", "2 ответ" ], "correctAnswer": "Правильный ответ" } ]
Пожелания и предложения принимаются в группе телеграмм или на почту:
https://t.me/java_yandex_practicum (Алексей - N911)