Перейти к основному содержимому

Обновления

Обновление (update) — это структура, которую сервер шлёт боту при любом событии. Каждое обновление имеет уникальный update_id и одно из полей-событий.

Типы обновлений

ПолеКогда приходит
messageПолучено новое сообщение в чате (DM или группа)
edited_messageСообщение в чате отредактировано
channel_postНовый пост в канале
edited_channel_postПост в канале отредактирован
callback_queryЮзер нажал inline-кнопку под сообщением
inline_queryЮзер написал @bot запрос в любом чате
chosen_inline_resultЮзер выбрал результат из inline-результатов бота
my_chat_memberБот добавлен/удалён в чат, или сменился его статус
chat_memberЛюбой участник чата изменил статус
chat_join_requestЗаявка на вступление в чат с approval-режимом
message_reactionКто-то добавил/убрал реакцию на сообщение
message_reaction_countАгрегированный счётчик реакций (для каналов)
poll / poll_answerИзменения в опросе или голос юзера

Получение обновлений

Два способа:

1. Long-polling (getUpdates)

Бот периодически вызывает getUpdates. Сервер отдаёт массив новых обновлений или ждёт до timeout если их нет.

curl 'https://api.telefon.chat/bot<TOKEN>/getUpdates?offset=0&timeout=30'

Параметры:

  • offsetupdate_id следующего ожидаемого обновления (последний обработанный + 1).
  • timeout — сколько секунд ждать новых обновлений (0 — мгновенно, 30 — типично).
  • limit — максимум обновлений за один запрос (по умолчанию 100).
  • allowed_updates — список типов, остальные пропускаются.

2. Webhook

Бот регистрирует HTTPS-URL через setWebhook. Сервер шлёт POST с обновлением на этот URL.

curl -X POST 'https://api.telefon.chat/bot<TOKEN>/setWebhook' \
-d 'url=https://your-server.com/webhook'

См. подробнее: Webhooks.

Что выбрать

См. сравнение: Long-poll vs Webhook.