Для фоновой автоматизации OneASO разработан Telegram-бот. Когда работа останавливается на капче или проверке Cloudflare, владелец получает в телефоне причину остановки и понимает, что нужно сделать.

Telegram-бот OneASO для событий фоновой автоматизации
Уведомления OneASO в Telegram.

Событие OneASO → SQLite → Telegram

Для эпизодов и отправок использовал SQLite. Бот записывает состояние события в журнал и обращается к нему при повторной обработке. История сохраняется между запусками: перезапуск не превращает старую остановку в новое уведомление.

Для каждого эпизода сохраняется связь с его сообщением и адресатом. Если содержимое или получатель уже зарегистрированного эпизода изменились, отправитель отклоняет такую попытку. Это защищает журнал от подмены одной остановки другой.

Состояние эпизода OneASOЗначение для уведомления
sendingОтправка уже начата
sentУведомление отправлено
unknownОтвет на запрос не получен; перед повтором нужна сверка
blockedОтправка остановлена проверкой
Схема обработки события и уведомления OneASO
От события автоматизации до сообщения владельцу OneASO.

Ключ подключения: Windows DPAPI

Ключ бота зашифрован через DPAPI средствами Windows. Перед отправкой проверяются бот и получатель. Владелец получает сообщение в свой Telegram; работу с капчей выполняет сам пользователь.

Паузы API и неопределённый ответ

При ограничении Telegram API отправитель учитывает retry_after: новые эпизоды этого бота ждут указанную паузу. Если ответ на запрос отправки потерян, эпизод получает статус unknown. Автоматического повтора такого сообщения нет.

Разделил сбой до отправки и неизвестный итог уже начатой доставки. Благодаря журналу SQLite последующий запуск видит состояние эпизода и принимает решение по нему.

Один эпизод остаётся одним эпизодом

Отправитель OneASO учитывает ситуацию, когда запрос уже ушёл, а подтверждение от сервера ещё не пришло. По такому ответу нельзя решить, пропало ли уведомление: оно могло появиться в переписке. Поэтому unknown сохраняется в SQLite. После перезапуска этот эпизод остаётся на сверку и не попадает в очередь повторов.

Иначе обрабатывается пауза retry_after. Здесь API сообщил срок ожидания, и отправитель OneASO заносит ограничение для всего бота. В этот промежуток другой эпизод тоже ждёт: смена события не отменяет паузу.

Ещё одна граница проходит по содержимому записи SQLite. Сохранённый эпизод нельзя использовать для иного адресата или текста. Для изменившейся остановки нужна собственная запись. Такой подход связывает уведомление с причиной, из-за которой владелец OneASO получил сигнал.

Бот сообщает владельцу OneASO о капче и паузах фоновой автоматизации. Журнал SQLite сохраняет эпизоды между запусками.

Бот подключён к OneASO

17проверок доставки, логики и защиты

Проверил тестовую отправку по ответу API и истории Telegram. Повторный запуск не отправил дубль. Бот подключён к автоматизации OneASO и сообщает, когда фоновая задача ждёт человека.

Обсудить уведомления для вашего процесса · Другие проекты OneASO

Обсудить задачу