@KoPeYkAMerlow

Как получить следующее сообщение, отправленное ботом?

Всем привет! Я делаю inline callback кнопки для своего бота.
Они работают так:
пользователь отправляет сообщение (Допустим: /nlist), бот присылает список ник-неймов с кнопками под сообщением:
"предыдущая страница", "без ников", "следующая страница". Когда пользователь нажимает на кнопку, то handler для cb кнопок это читает, и сверяет пункт "cmd" в pyload (VKBottle, pyload):
if msg_payload.get("cmd") == "nonicks":

сами cb кнопки созданы вот так:
keyboard = (
            Keyboard(inline=True)
            .add(Callback("Без ников", {"cmd": "nonicks", "peer_id":f"{message.peer_id}", "conv":f"{message.conversation_message_id+1}", "chat_id":f"{chat_id}"}), color=KeyboardButtonColor.PRIMARY)
        )


В обработчике кнопок большой код, так что не суть. Так вот, после выполнения определенных действий, бот удаляет свое сообщение, и отправляет новое. Удаляет он сообщение благодаря тому, что я указал
"conv":f"{message.conversation_message_id+1}"
Т.е. он удаляет следящее сообщение после Вашего. Но я нашел такой баг: если написать /nlist (или что угодно другое, где есть кнопки), и сразу после этого, до сообщения от бота, любой другой текст, то ID сообщения, указанного в payload - будет Вашим (Или человека, который его отправил). Если короче, то он попытается удалить не свое сообщение, от чего могут возникать ошибки и т.п. Как можно реализовать удаление только своего сообщения?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Не имел дела с VKBottle, но я здорово подозреваю, что функция отправки сообщения возвращает объект, описывающий отправленное сообщение. Возьми id оттуда.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы