Заметки
Как удалять приветствие бота после подтверждения клиента
Как удалить или обновить приветственное сообщение бота после подтверждения клиента: ITR, таймер и удаление сообщения.
Чтобы удалить приветствие, нужно сохранить ID сообщения при отправке. Без ID потом останется только искать сообщение в истории, что сложнее и менее надёжно.
Задача
Бот отправляет приветствие с кнопкой подтверждения, а после ответа клиента это сообщение нужно убрать или заменить.
Такой сценарий полезен, чтобы чат не захламлялся старыми кнопками и клиент видел только актуальный шаг.
Сохранить ID сообщения
При отправке приветствия сохраните message ID вместе с ID чата и клиентом.
[
'CHAT_ID' => 'chat789',
'MESSAGE_ID' => 555,
'CLIENT_ID' => 'telegram_1001',
'STATUS' => 'waiting_confirm',
] Эту запись можно хранить в HL-блоке, таблице модуля или другой служебной структуре.
Удалить или обновить
После подтверждения можно удалить сообщение или заменить текст на финальный.
BX24.callMethod(
'imbot.v2.Chat.Message.delete',
{
botId: 42,
messageId: 555,
},
function (result) {
console.log(result.error() || result.data());
}
); Если удаление недоступно по правам или типу сообщения, используйте обновление текста: например, заменить кнопки на «Подтверждено».
Таймер для старых приветствий
Если клиент не ответил, приветствие можно закрывать по таймеру.
Таймер лучше делать очередью и агентом, а не ожиданием внутри обработчика. Агент находит устаревшие приветствия и удаляет или обновляет их.