@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 оттуда.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
21 февр. 2024, в 14:10
1000 руб./за проект
21 февр. 2024, в 14:06
3000 руб./за проект
21 февр. 2024, в 14:02
3500 руб./за проект