我尝试从这里创建一个机器人 https://github.com/rubenlagus/TelegramBots
它作为一个简单的应用程序工作,但是当我尝试添加Spring Boot时,它不起作用。我想这是因为Spring Boot启动Tomcat并且电报机器人尝试发送/接收一些http。
我没有收到任何错误(bot以@Component bean的形式启动)。
甚至可以连接这种机器人和Spring Boot应用程序或至少是一个Web应用程序吗?
答案 0 :(得分:3)
您可以尝试在同一库中使用telegrambots-spring-boot-starter
。
您的主要配置应如下所示:
@SpringBootApplication
public class YourApplicationMainClass {
public static void main(String[] args) {
ApiContextInitializer.init();
SpringApplication.run(YourApplicationMainClass.class, args);
}
}
您的机器人类别:
// Standard Spring component annotation
@Component
public class YourBotName extends TelegramLongPollingBot {
//Bot body.
}
更多信息,您可以在这里https://github.com/rubenlagus/TelegramBots/tree/master/telegrambots-spring-boot-starter
答案 1 :(得分:1)
如@Bobby所说,您可以尝试
telegrambots-spring-boot-starter项目
您还可以添加新的telegrambots-extensions依赖关系,使您能够管理命令bot。
所以代码将是
@Component
public class Foo extends TelegramLongPollingCommandBot {
@Override
public void processNonCommandUpdate(Update update) {
您还可以通过这种方式管理命令。
@Component
public class FooCommand extends DefaultBotCommand {
@Override
public void execute(AbsSender absSender, User user, Chat chat, Integer messageId, String[] arguments) {
您可以在SpringBoot类主程序中注册TelegramLongPollingCommandBot,如下所示:
@SpringBootApplication public class TelegramBotConfiguration { public static void main(String[] args) { ApiContextInitializer.init(); TelegramBotsApi telegramBotsApi = new TelegramBotsApi(); try { session = telegramBotsApi.registerBot(new Foo()); } catch (TelegramApiException e) { log.error(e); } SpringApplication.run(TelegramBotConfiguration.class, args); } }
[https://github.com/rubenlagus/TelegramBots/tree/master/telegrambots-extensions]