Задать вопрос
@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 - будет Вашим (Или человека, который его отправил). Если короче, то он попытается удалить не свое сообщение, от чего могут возникать ошибки и т.п. Как можно реализовать удаление только своего сообщения?
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Не имел дела с VKBottle, но я здорово подозреваю, что функция отправки сообщения возвращает объект, описывающий отправленное сообщение. Возьми id оттуда.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽