我正在 java telegrambots 库中创建一个机器人。该机器人是针对男女关系的心理训练。我需要bot的当前用户能够推荐或添加他的男朋友或伴侣,即能够同时向bot添加两个用户,并且当前用户必须推荐bot添加另一个用户,这是我现在试图在官方电报文档中找到的功能。在我看来,我找到了两个合适的方法 KeyboardButtonRequestUser 和 KeyboardButtonRequestChat,但我不知道如何将第二个用户连接到机器人并获取有关它的数据。 据我理解,KeyboardButtonRequestChat和KeyboardButtonRequestUser的数据被传给了UserShared对象,它可以包含两个字段——request_id、user_id和request_id、chat_id,也就是我们可以拉出这个chat_id和user_id。那么如何在 JAVA 中做到这一点?
看这个archive with the project,那里实现了两种方法中的一种,但不完全。 下载完整项目
@SneakyThrows
private void sendMessage(long chatId, String textToSend) {
SendMessage message = new SendMessage();
message.setChatId(String.valueOf(chatId));
message.setText(textToSend);
KeyboardButtonRequestUser keyboardButtonRequestUser = KeyboardButtonRequestUser
.builder()
.requestId("12345")
.build();
KeyboardButton keyboardButton = KeyboardButton.builder()
.text("keyboardButtonRequestUser")
.requestUser(keyboardButtonRequestUser)
.build();
ReplyKeyboardMarkup keyboardMarkup = new ReplyKeyboardMarkup();
keyboardMarkup.setResizeKeyboard(true);
keyboardMarkup.setOneTimeKeyboard(true);
List<KeyboardRow> keyboardRows = new ArrayList<>();
KeyboardRow row = new KeyboardRow();
row.add(keyboardButton);
row.add("keyboardButtonRequestChat");
keyboardRows.add(row);
keyboardMarkup.setKeyboard(keyboardRows);
message.setReplyMarkup(keyboardMarkup);
try {
var getChatSh = execute(message).getChatShared();
System.out.println(getChatSh);
} catch (TelegramApiException e) {
throw new TelegramApiException(e);
}
}