简介

在 Telegram Bot API 中,启动菜单通常是指当用户开始与机器人交互时出现的自定义键盘或命令列表。这可以通过设置命令或使用 ReplyKeyboardMarkup 来实现。

功能实现:

第一种:BotFather

TG上搜索 BotFather

第二种:通过代码实现

1.添加创建添加启动菜单方法

   public void registerCommands() {
        List<BotCommand> commands = Arrays.asList(
                new BotCommand("/start", "启动TG BOT"),
                new BotCommand("/help", "查看TG BOT简介"));
        SetMyCommands setMyCommands = new SetMyCommands();
        setMyCommands.setCommands(commands);
        try {
            execute(setMyCommands);
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }

2.结合上篇文章,在Initializer中添加启动方法

@Component
public class Initializer {

    @Autowired
    BotServiceImpl bot;

    @EventListener({ContextRefreshedEvent.class})
    public void init() throws TelegramApiException {
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class);
        try{
            telegramBotsApi.registerBot(bot);
         
            bot.registerCommands();   //添加启动菜单

        }catch (TelegramApiException e){
            throw new RuntimeException(e);
        }
    }
}

3.在做具体操作

 public void onUpdateReceived(Update update) {
        //我们检查更新是否有消息,消息是否有文本
        if (update.hasMessage() && update.getMessage().hasText()){
            //设置变量
            if (update.getMessage().hasText()) {
                String message_text = update.getMessage().getText();
                Long chat_id = update.getMessage().getChatId();

                if (message_text.equals("/start")){
                    SendMessage message = new SendMessage(); 
                    message.setChatId(String.valueOf(chat_id));
                    message.setText("启动TG BOT");
                    try {
                        execute(message); 
                    } catch (TelegramApiException e) {
                        e.printStackTrace();
                    }
                }else if (message_text.equals("/help")){
                    SendMessage message = new SendMessage(); 
                    message.setChatId(String.valueOf(chat_id));
                    message.setText("查看TG BOT帮助");
                    try {
                        execute(message); 
                    } catch (TelegramApiException e) {
                        e.printStackTrace();
                    }
                }
                   
                }
                }

            }
    }

第二中方法,结合上篇文章观看

Java 创建TG 机器人-CSDN博客

Java 创建TG 机器人 集成 SpringBoot-CSDN博客

Java 创建TG 机器人 回调函数,可以根据需要添加更多的条件来处理其他类型的更新-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐