
简介
Spring Boot 提供了一种快速、便捷、高效的方式来构建和部署基于 Spring 框架的应用程序,大大简化了开发过程,提高了开发效率。它广泛应用于各种类型的项目,从简单的 REST API 服务到复杂的企业级应用程序,所以将 Telegram Bot 与 Spring Boot 集成可以提供强大的消息处理能力、快速开发和部署、集成其他功能和服务、可扩展性和可维护性、监控和管理等好处,帮助开发者更好地构建和管理 Telegram Bot。
导入Maven
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>TgBot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>TgBot</name>
<description>TgBot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!--springboot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--tg boot-->
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>6.8.0</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
编写application.yml
bot:
botname: xxxBot #机器人名称
token: asdadsasd:xxxx-GdaY4 #密钥
host: 127.0.0.1 #ip
port: 7890 #端口
添加TG机器人配置类
@Data
@Configuration
@ConfigurationProperties(prefix = "bot")
public class BotConfig {
//bot_Name
private String botname;
//bot_Token
private String token;
private String host;
private Integer port;
public DefaultBotOptions getDefaultBotOptions(){
//设置Http代理
DefaultBotOptions botOptions = new DefaultBotOptions();
botOptions.setProxyHost(host);
botOptions.setProxyPort(port);
//选择代理类型:[HTTP|SOCKS4|SOCKS5](默认:NO_PROXY)
botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
return botOptions;
}
}
创建TG Bot调用类,应用程序启动并且 Spring 的应用上下文被刷新时,init() 方法将被调用
@Component
public class Initializer {
@Autowired
BotTowServiceImpl bot;
@EventListener({ContextRefreshedEvent.class})
public void init() throws TelegramApiException {
TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class);
try{
telegramBotsApi.registerBot(bot);
}catch (TelegramApiException e){
throw new RuntimeException(e);
}
}
}
添加Service层
@Service
public class BotTowServiceImpl extends TelegramLongPollingBot {
@Autowired
private CryptocurrencyData cryptocurrencyData;
private final BotConfig config;
public BotTowServiceImpl(BotConfig config) {
super(config.getDefaultBotOptions());
this.config = config;
}
@Override
public String getBotUsername() { //todo 机器人名称
return config.getBotname();
}
@Override
public String getBotToken() { //todo 密钥
return config.getToken();
}
@Override
public void onUpdateReceived(Update update) { //todo 回调
}
}
启动类
@SpringBootApplication
public class TgBotApplication {
public static void main(String[] args) {
SpringApplication.run(TgBotApplication.class, args);
}
}

1038

被折叠的 条评论
为什么被折叠?



