Java 创建TG 机器人 集成 SpringBoot

5 篇文章 0 订阅
4 篇文章 0 订阅

Java 创建TG 机器人-CSDN博客

简介

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);
    }
}

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值