Skip to content

OlegNyr/java-telegram-bot-mvc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java telegram bot mvc

Библиотека для разработки Телеграмм бота используется фраемворк Spring MVC для взаимодействия с API телеграмма используется библиотека java-telegram-bot-api

Идея взята из https://habrahabr.ru/post/335490/ спасибо @PqDn, раелизация скопа юзера отсуда https://habrahabr.ru/post/335490/#comment_10359566 спасибо @eugenehr

Пример использования в папке /sample

@SpringBootApplication
@EnableTelegram
@BotController
public class SampleTelegramBotMvcMain implements TelegramMvcConfiguration {
   private static final Logger logger = LoggerFactory.getLogger(SampleTelegramBotMvcMain.class);

   public static void main(String[] args) {
        SpringApplication.run(SampleTelegramBotMvcMain.class);
    }

    @Override
    public void configuration(TelegramBotBuilder telegramBotBuilder) {
        telegramBotBuilder.token('ТОкен доступа').alias("myFirsBean");
    }

    @BotRequest("/start")
    BaseRequest hello(String text,
                      Long chatId,
                      TelegramRequest telegramRequest,
                      TelegramBot telegramBot,
                      Update update,
                      Message message,
                      Chat chat,
                      User user
    ) {
        logger.info("Text = {}", text);
        logger.info("ChatId or UserId = {}", chatId);
        logger.info("Telegram Request = {}", telegramRequest);
        logger.info("TelegramBot = {}", telegramBot);
        logger.info("Update = {}", update);
        logger.info("Message = {}", message);
        logger.info("Chat = {}", chat);
        logger.info("User = {}", user);

        return new SendMessage(chatId, "I test the bot");
    }
}

Что реализованно:

  • Аннотация @BotController используется чтобы пометить класс обработчик
  • Аннотация @BotRequest Принимает параметр
    1. path - строка фильтрации сообщения понимает запись в форме ant, т.е. /run ** service
    2. messageType - Енум который опредялет тип сообщения, пока реализован MESSAGE, COMMAND и несколько внутренних для провреки возможности
  • возращается строка либо наследник BaseRequest(в терминах API это запрос к телеграм серверу)
  • библиотека так же может обрабытывать входящие параметры такие как String text полный текс пользователя к боту, Update, Message, и д.р.

About

Telegram bot spring mvc

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages