1 changed files with 76 additions and 0 deletions
@ -0,0 +1,76 @@ |
|||||
|
package org.telegram.commands; |
||||
|
|
||||
|
import org.telegram.database.DatabaseManager; |
||||
|
import org.telegram.telegrambots.extensions.bots.commandbot.commands.BotCommand; |
||||
|
import org.telegram.telegrambots.meta.api.methods.send.SendMessage; |
||||
|
import org.telegram.telegrambots.meta.api.objects.Chat; |
||||
|
import org.telegram.telegrambots.meta.api.objects.User; |
||||
|
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; |
||||
|
import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton; |
||||
|
import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardRow; |
||||
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiException; |
||||
|
import org.telegram.telegrambots.meta.generics.TelegramClient; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* This command shows a keyboard with two options: |
||||
|
* 1. Show an image |
||||
|
* 2. Trigger success message |
||||
|
* |
||||
|
* @author Your Name |
||||
|
*/ |
||||
|
public class KeyboardCommand extends BotCommand { |
||||
|
|
||||
|
public static final String LOGTAG = "KEYBOARDCOMMAND"; |
||||
|
public static final String IMAGE_URL = "https://globecoin.s3.ap-southeast-1.amazonaws.com/echo2/uploads/2025-03-05/381300c82a6a4ba1b48800e292ca150c.jpg"; |
||||
|
|
||||
|
public KeyboardCommand() { |
||||
|
super("keyboard", "Show interactive keyboard with options"); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void execute(TelegramClient telegramClient, User user, Chat chat, String[] arguments) { |
||||
|
|
||||
|
if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) { |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
String userName = user.getFirstName() + " " + user.getLastName(); |
||||
|
|
||||
|
// Create inline keyboard buttons
|
||||
|
InlineKeyboardButton showImageButton = InlineKeyboardButton.builder() |
||||
|
.text("🖼️ 展示图片") |
||||
|
.callbackData("show_image") |
||||
|
.build(); |
||||
|
|
||||
|
InlineKeyboardButton successButton = InlineKeyboardButton.builder() |
||||
|
.text("✅ 跳转成功") |
||||
|
.callbackData("show_success:" + userName) |
||||
|
.build(); |
||||
|
|
||||
|
// Create keyboard rows
|
||||
|
// List<InlineKeyboardRow> rows = new ArrayList<>();
|
||||
|
// rows.add(new InlineKeyboardRow(showImageButton));
|
||||
|
// rows.add(new InlineKeyboardRow(successButton));
|
||||
|
|
||||
|
// Create keyboard rows - 两个按钮在同一行
|
||||
|
List<InlineKeyboardRow> rows = new ArrayList<>(); |
||||
|
InlineKeyboardRow row = new InlineKeyboardRow(showImageButton, successButton); |
||||
|
rows.add(row); |
||||
|
|
||||
|
// Create the message with inline keyboard
|
||||
|
SendMessage message = new SendMessage(chat.getId().toString(), |
||||
|
"请选择一个选项:\n\n1. 展示图片\n2. 查看成功信息"); |
||||
|
InlineKeyboardMarkup keyboardMarkup = new InlineKeyboardMarkup(rows); |
||||
|
message.setReplyMarkup(keyboardMarkup); |
||||
|
|
||||
|
try { |
||||
|
telegramClient.execute(message); |
||||
|
} catch (TelegramApiException e) { |
||||
|
// log.error("Error", e);
|
||||
|
System.out.println(e); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue