Приветствую, возник вопрос.
При использовании Java VK Bots Long Poll API от yvasiliev, не могу понять как обработать нажатие inline кнопки. При попытке, выбрасывает ошибку и закрывается.
Код приложить не могу, разве что свою реализацию кнопок.
public class Bot extends LongPollBot {
private final String token;
public Bot(String token) {
this.token = token;
}
@SneakyThrows
@Override
public void onMessageNew(MessageNew messageNew) {
Message message = messageNew.getMessage();
if (!message.hasText()) return;
if (!message.getText().startsWith(Constants.PREFIX)) return;
if (!Utils.contains(message.getFromId(), Constants.adminList)) return;
String[] cmd = message.getText().replaceAll("!", "").split(" ");
if (cmd.length < 3) {
vk.messages.send()
.setPeerId(message.getPeerId())
.setMessage("Вы не указали важные параметры! \n Использование: !send {server} команда")
.execute();
return;
}
Send.Response response = vk.messages.send()
.setPeerId(message.getPeerId())
.setKeyboard(getKeyboard())
.execute();
}
@Override
public String getAccessToken() {
return token;
}
@SneakyThrows
private Keyboard getKeyboard() {
// button 1
AtomicReference<JsonObject> payload = new AtomicReference<>(new JsonObject());
payload.get().addProperty("order", "send");
payload.get().addProperty("quantity", 2);
Button sendBTN = new TextButton(Button.Color.POSITIVE, new TextButton.Action(
"Отправить",
payload.get()
));
// button 2
payload.set(new JsonObject());
payload.get().addProperty("order", "cancel");
Button cancelBTN = new TextButton(Button.Color.NEGATIVE, new TextButton.Action("Отменить", payload.get()));
var row1 = Collections.singletonList(sendBTN);
var row2 = Collections.singletonList(cancelBTN);
return new Keyboard(Collections.unmodifiableList(Arrays.asList(row1, row2))).setInline(true);
}
@SneakyThrows
public static void main(String[] args) {
Constants.adminList.addAll(Arrays.asList("713491127", "428819897"));
Constants.serverList.put("default", "127.0.0.1:25565");
Constants.serverList.put("auth", "127.0.0.1:27756");
new Bot(Constants.TOKEN).startPolling();
}
}
Спасибо за помощь!