From 0b8c66ba2e7ef076685b01cf8bff10100b271d1a Mon Sep 17 00:00:00 2001 From: La123123 <617330105@qq.com> Date: Mon, 16 Mar 2026 17:20:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E8=81=94=E9=94=AE=E7=9B=98=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../updateshandlers/CommandsHandler.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/telegram/updateshandlers/CommandsHandler.java b/src/main/java/org/telegram/updateshandlers/CommandsHandler.java index 45777c6..389d858 100644 --- a/src/main/java/org/telegram/updateshandlers/CommandsHandler.java +++ b/src/main/java/org/telegram/updateshandlers/CommandsHandler.java @@ -2,6 +2,7 @@ package org.telegram.updateshandlers; import org.telegram.commands.HelloCommand; import org.telegram.commands.HelpCommand; +import org.telegram.commands.KeyboardCommand; import org.telegram.commands.StartCommand; import org.telegram.commands.StopCommand; import org.telegram.commands.SuccessCommand; @@ -12,8 +13,13 @@ import org.telegram.telegrambots.extensions.bots.commandbot.CommandLongPollingTe import org.telegram.telegrambots.meta.api.methods.send.SendMessage; import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.api.objects.message.Message; +import org.telegram.telegrambots.meta.api.objects.CallbackQuery; +import org.telegram.telegrambots.meta.api.methods.send.SendPhoto; +import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import static org.telegram.commands.KeyboardCommand.IMAGE_URL; + /** * This handler mainly works with commands to demonstrate the Commands feature of the API * @@ -26,6 +32,7 @@ public class CommandsHandler extends CommandLongPollingTelegramBot { public CommandsHandler(String botToken, String botUsername) { super(new OkHttpTelegramClient(botToken), true, () -> botUsername); register(new HelloCommand()); + register(new KeyboardCommand()); register(new StartCommand()); register(new StopCommand()); register(new SuccessCommand()); @@ -38,7 +45,6 @@ public class CommandsHandler extends CommandLongPollingTelegramBot { try { telegramClient.execute(commandUnknownMessage); } catch (TelegramApiException e) { -// log.error("Error sending message in commands bot", e); System.out.println("Error sending message in commands bot" + e); } helpCommand.execute(telegramClient, message.getFrom(), message.getChat(), new String[] {}); @@ -47,6 +53,12 @@ public class CommandsHandler extends CommandLongPollingTelegramBot { @Override public void processNonCommandUpdate(Update update) { + // 处理回调查询 + if (update.hasCallbackQuery()) { + onCallbackQueryReceived(update.getCallbackQuery()); + return; + } + if (update.hasMessage()) { Message message = update.getMessage(); @@ -65,4 +77,30 @@ public class CommandsHandler extends CommandLongPollingTelegramBot { } } } + + public void onCallbackQueryReceived(CallbackQuery callbackQuery) { + System.out.println("收到回调查询:" + callbackQuery.getData()); + String data = callbackQuery.getData(); + long chatId = callbackQuery.getMessage().getChatId(); + + if (data.equals("show_image")) { + // Send photo + SendPhoto sendPhoto = new SendPhoto(String.valueOf(chatId), new InputFile(IMAGE_URL)); + sendPhoto.setCaption("这是展示的图片"); + try { + telegramClient.execute(sendPhoto); + } catch (TelegramApiException e) { + System.out.println("Error sending photo: " + e); + } + } else if (data.startsWith("show_success:")) { + // Extract username and show success message + String userName = data.substring("show_success:".length()); + SendMessage successMessage = new SendMessage(String.valueOf(chatId), userName + " success"); + try { + telegramClient.execute(successMessage); + } catch (TelegramApiException e) { + System.out.println("Error sending success message: " + e); + } + } + } } \ No newline at end of file