Долгий опрос (long polling) — альтернатива вебхуку в Telegram Bot API: бот регулярно вызывает метод getUpdates с тайм-аутом, и Telegram держит соединение открытым, пока не придёт новое обновление или не истечёт тайм-аут, после чего цикл повторяется. Он не требует публичного HTTPS-эндпоинта, поэтому это самый простой способ получать обновления для скрипта, работающего на ноутбуке или в приватной сети. Активным может быть только один способ доставки одновременно — после установки вебхука getUpdates перестаёт что-либо возвращать, и перед возвратом к опросу вебхук нужно удалить.
Каждый вызов getUpdates возвращает обновления, поступившие после последнего подтверждённого offset, а если очередь пуста — блокируется на время тайм-аута в ожидании следующего. Получатель должен сохранять наибольший обработанный update_id и передавать offset = update_id + 1 в следующем вызове, иначе Telegram повторно пришлёт те же обновления при каждом запросе.
Долгий опрос не требует TLS-сертификата, публичного порта или правила файрвола — бот на ноутбуке за NAT может получать обновления сразу после запуска цикла. Это делает его типичным выбором для локальной разработки и небольших скриптов ценой необходимости в постоянном процессе: цикл перестаёт получать обновления в тот же момент, когда процесс завершается, и никаких автоматических повторов со стороны Telegram, в отличие от вебхука, здесь нет.
Autogram работает как флот независимых Celery-воркеров, а не как один долгоживущий процесс, поэтому регистрирует вебхук и позволяет Telegram отправлять обновления на HTTPS-эндпоинт сразу по их появлению. Это лучше подходит горизонтально масштабируемому бэкенду, чем цикл, которому нужно где-то непрерывно выполняться — и именно поэтому два способа доставки Bot API взаимоисключающи для одного токена бота.
Автоматизируйте публикацию в Telegram с помощью AI-контента, оценки качества и умного планирования.