Telegram Bot API: getUpdates, вебхук и проверка бота

Бот получает обновления одним из двух способов: забирает их сам через getUpdates или ждет, пока Telegram отправит их на его адрес через вебхук. Включить оба способа сразу нельзя, и это частая причина пустого getUpdates.

Telegram Bot API: getUpdates, вебхук и проверка бота
Содержание6 разделов

Как устроен запрос

Каждый запрос к Bot API идет по HTTPS на адрес https://api.telegram.org/bot<токен>/<метод>. Подойдут GET и POST. Параметры передают в строке запроса, формой или в JSON. Токен выдает @BotFather.

Проверить токен проще всего методом getMe: в ответе будет имя бота. В проверке Telegram-бота это одна кнопка, запрос уходит с нашего сервера, VPN не нужен.

getUpdates

getUpdates отдает накопленные обновления: новые сообщения, нажатия кнопок, вступления в чаты. Telegram хранит их до 24 часов.

Чтобы подтвердить обработанные обновления, передайте offset больше последнего полученного update_id. Пока вы этого не сделаете, те же обновления будут приходить снова.

Параметр limit задает, сколько обновлений придет за раз: от 1 до 100. timeout больше нуля включает длинный опрос: Telegram держит соединение, пока не появится обновление. С timeout 0 опрос короткий.

Вебхук

С вебхуком Telegram сам отправляет каждое обновление на ваш адрес. Адрес задают методом setWebhook. Нужны HTTPS и один из портов: 443, 80, 88 или 8443.

Чтобы отличать запросы Telegram от чужих, задайте secret_token: Telegram положит его в заголовок X-Telegram-Bot-Api-Secret-Token. max_connections ограничивает число одновременных запросов к вашему серверу: от 1 до 100, по умолчанию 40.

Метод getWebhookInfo показывает текущий адрес, число обновлений в очереди (pending_update_count) и последнюю ошибку доставки (last_error_message). Если бот молчит, начните с этого метода.

Почему getUpdates пустой

Пока у бота стоит вебхук, getUpdates не работает: Telegram отвечает ошибкой 409 Conflict. Снимите вебхук методом deleteWebhook, и обновления снова можно забирать вручную. Параметр drop_pending_updates решает, выбросить ли при этом накопленную очередь.

Вторая причина: обновления уже забрал ваш же бот. Если его код работает на сервере и опрашивает getUpdates, он подтверждает обновления раньше, чем вы успеете их посмотреть.

Свой сервер Bot API

Исходный код сервера Bot API открыт: репозиторий tdlib/telegram-bot-api на GitHub. На своем сервере бот загружает файлы до 2000 МБ и скачивает без ограничений на размер.

Бот и AI-агент

Управлять ботом из Claude Code или Cursor можно через MCP: Telegram API MCP дает агенту методы Bot API. Чтобы переписываться с самим агентом из Telegram, посмотрите Claude-to-IM.

Вопросы и ответы

Можно ли использовать getUpdates и вебхук одновременно?

Нет. Пока стоит вебхук, getUpdates возвращает ошибку. Выберите один способ.

Как долго Telegram хранит обновления?

До 24 часов. Если бот не забрал обновление за это время, оно пропадет.

Какие порты подходят для вебхука?

443, 80, 88 и 8443. Адрес должен работать по HTTPS.

Инструменты из статьи

3 записи каталога

Об авторе

Читайте также

Telegram api_id и api_hash: как получить и где хранить

Telegram api_id и api_hash: как получить и где хранить

api_id и api_hash нужны, чтобы программа работала с Telegram от имени вашего аккаунта, как обычный клиент. Их выдают на my.telegram.org, одну пару на номер телефона.

npx skillfoxx: как поставить MCP и скиллы одной командой

npx skillfoxx: как поставить MCP и скиллы одной командой

Команда npx skillfoxx add ставит запись каталога в Claude Code, Cursor, Codex и еще 11 агентов: находит конфиг, дописывает только свой ключ, до установки показывает риск и ведет lock-файл. Для агентов есть MCP-сервер каталога, для приложений REST API без ключа и выгрузка catalog.json.

Как убрать признаки ИИ из текста: скиллы против AI-slop

Как убрать признаки ИИ из текста: скиллы против AI-slop

AI-slop это штампы, канцелярит и монотонный ритм, по которым сразу видно машинный текст. Убирают его скиллы-humanizer и редакторы: находят приметы ИИ и переписывают, не трогая факты. Разбираем, что поставить для русского и английского и как встроить в работу.