Skip to content

DevKarmanov/tg-simple-api-lib

Repository files navigation

tg-simple-api

License

tg-simple-api — это Java-библиотека с интеграцией Spring, предназначенная для быстрого и удобного создания Telegram-ботов с помощью аннотаций и встроенного менеджера состояний.

🧩 Плагин IntelliJ IDEA для удобства разработки

Для более комфортной работы с tg-simple-api рекомендую установить официальный плагин для IntelliJ IDEA.

  • Плагин автоматически распознает аннотации tg-simple-api.
  • Подавляет лишние предупреждения IDE.
  • Планируется расширение новыми полезными функциями.

Скачать последние релизы и узнать подробности можно здесь:
https://github.com/DevKarmanov/tg-simple-api-intellij-plugin/releases/latest

🧪 Пример бота

Для наглядного примера использования библиотеки можно посмотреть готового Telegram-бота, написанного с её использованием: 👉 weather-bot (пример реализации Telegram-бота)

📦 Подключение

Если вы не хотите тянуть тяжелые зависимости для ИИ в проект, то исключите следующие библиотеки:

implementation('com.github.DevKarmanov:tg-simple-api-lib:v1.1.2') {
    exclude group: 'org.bytedeco', module: 'javacv-platform'
    exclude group: 'org.bytedeco', module: 'ffmpeg-platform'
    exclude group: 'com.alphacephei', module: 'vosk'
}

🚀 Быстрый старт

  1. Создайте бин для BotHandler и вашего бота:
@Configuration
@EnableConfigurationProperties(BotProperties.class)
public class BotConfig {
    private final BotProperties botProperties;

    public BotConfig(BotProperties botProperties) {
        this.botProperties = botProperties;
    }

    @Bean
    public TelegramBot telegramBot() {
        return new TelegramBot(botProperties.token(), botProperties.name(), botProperties.webHookPath());
    }

    @Bean
    public BotHandler botHandler() {
        return new DefaultBotHandler();
    }
}
  1. Передайте Update в BotHandler:
@RestController
public class WebHookController {
    private final BotHandler botHandler;

    public WebHookController(BotHandler botHandler) {
        this.botHandler = botHandler;
    }

    @PostMapping("/webhook")
    public ResponseEntity<?> receiveWebhook(@RequestBody Update update) {
        botHandler.handleMessage(update);
        return ResponseEntity.ok().build();
    }
}

About

Library for simplified development of Telegram bots in Java

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages