Заметки
Как ITR-боту отправлять сообщения через заданное время
Чтобы бот написал через пять минут, не нужно держать обработчик события в sleep(300). Сохраните будущую отправку с BOT_ID, DIALOG_ID, временем и условием отмены, а текущий запрос завершите.
Внешний воркер либо агент коробки выбирает наступившие задания. Перед отправкой он проверяет, актуально ли напоминание: клиент мог уже ответить, оператор — закрыть диалог, а процесс — отменить ожидание.
Для классического API ботов сама отправка выглядит так:
BX24.callMethod('imbot.message.add', {
BOT_ID: 42,
DIALOG_ID: 'chat789',
MESSAGE: 'Нужна ли ещё помощь?'
}, function (result) {
if (result.error()) {
console.error(result.error());
return;
}
console.log(result.data());
}); Это только отправка из приложения, а не реализация таймера. В серверном воркере нужен REST-клиент с авторизацией приложения. Задание отмечают выполненным после успешного ответа, а два воркера не должны одновременно забирать одну запись. Для ITR-бота дополнительно учитывайте API и состояние сценария самого решения.