Я делаю клиент телеграммы на Java, используя код из https://github.com/tdlib/td/tree/master/example/java
Мне нужно общаться с ботом telegram из моего приложения. Бот отправляет сообщения с прикрепленными InlineKeyboardButtons. Как я могу отправить ответы на эти сообщения, например, если я нажму на кнопки?
У TdApi есть класс "AnswerInlineQuery", но я не могу понять, как адаптировать его для своего кода и где я должен принимать параметры для создания этого объекта ответа.
Я попытался сделать ответ, используя функцию "sendMessage" с параметром "replyToMessageId".
Вот структура полученных сообщений
UpdateNewMessage { message = Message {
id = 969932800
senderUserId = 0
chatId = -1001418532179
sendingState = null
isOutgoing = false
canBeEdited = false
canBeForwarded = true
canBeDeletedOnlyForSelf = false
canBeDeletedForAllUsers = false
isChannelPost = true
containsUnreadMention = false
date = 1562509621
editDate = 0
forwardInfo = null
replyToMessageId = 0
ttl = 0
ttlExpiresIn = 0.000000
viaBotUserId = 0
authorSignature = ""
views = 1
mediaAlbumId = 0
content = MessageText {
text = FormattedText {
text = "опрос"
entities = Array[0] {
}
}
webPage = null
}
replyMarkup = ReplyMarkupInlineKeyboard {
rows = Array[1] {
Array[3] {
InlineKeyboardButton {
text = "1"
type = InlineKeyboardButtonTypeCallback {
data = bytes [15] { 73 65 6E 64 5F 72 65 61 63 74 69 6F 6E 5F 30 }
}
}
InlineKeyboardButton {
text = "2"
type = InlineKeyboardButtonTypeCallback {
data = bytes [15] { 73 65 6E 64 5F 72 65 61 63 74 69 6F 6E 5F 31 }
}
}
InlineKeyboardButton {
text = "3"
type = InlineKeyboardButtonTypeCallback {
data = bytes [15] { 73 65 6E 64 5F 72 65 61 63 74 69 6F 6E 5F 32 }
}
}
}
}
}
}
}
И вот я получаю сообщения
@Override
public void onResult(TdApi.Object object) {
switch (object.getConstructor()) {
case TdApi.UpdateNewMessage.CONSTRUCTOR:
TdApi.UpdateNewMessage updateNewMessage = (TdApi.UpdateNewMessage) object;
TdApi.ReplyMarkupInlineKeyboard buttons = (TdApi.ReplyMarkupInlineKeyboard) updateNewMessage.message.replyMarkup;
if (buttons.rows[0][0].text.compareTo("1") == 0) {
System.out.println("found button");
TdApi.InlineKeyboardButton btn = buttons.rows[0][0];
TdApi.InlineKeyboardButtonTypeCallback resp =
(TdApi.InlineKeyboardButtonTypeCallback) btn.type;
}
// TdApi.MessageText messageText =
(TdApi.MessageText)updateNewMessage.message.content;
// System.out.println(messageText.text.text);
break;
Какую функцию и с какими параметрами следует использовать для отправки ответа?