Update Types
Сервер шлёт боту обновления одного из типов. Каждое имеет уникальный update_id и одно поле-событие.
Сообщения
| Поле | Когда |
|---|---|
message | Новое сообщение (DM/группа/супергруппа) |
edited_message | Сообщение отредактировано |
channel_post | Новый пост в канале |
edited_channel_post | Пост в канале отредактирован |
Inline-режим
| Поле | Когда |
|---|---|
inline_query | Юзер написал @bot xxx |
chosen_inline_result | Юзер выбрал результат из inline-popup |
Кнопки
| Поле | Когда |
|---|---|
callback_query | Тап на inline-кнопку с callback_data |
Участники
| Поле | Когда |
|---|---|
my_chat_member | Бот добавлен/удалён в чат, или его статус изменился |
chat_member | Любой участник изменил статус (нужен allowed_updates) |
chat_join_request | Заявка на вступление (для approval-чатов) |
Реакции
| Поле | Когда |
|---|---|
message_reaction | Кто-то добавил/убрал реакцию (нужен allowed_updates) |
message_reaction_count | Агрегированные счётчики (для каналов) |
Опросы
| Поле | Когда |
|---|---|
poll | Состояние опроса изменилось |
poll_answer | Юзер проголосовал в неанонимном опросе |
Подписка
По умолчанию приходят: message, edited_message, channel_post, edited_channel_post, inline_query, chosen_inline_result, callback_query.
Не приходят без явного указания: my_chat_member, chat_member, chat_join_request, message_reaction, message_reaction_count, poll, poll_answer.
Указать в getUpdates или setWebhook:
{
"allowed_updates": ["message", "callback_query", "chat_member", "poll_answer"]
}
Структура любого обновления
{
"update_id": 123456789,
"<event_field>": {...}
}
update_id — монотонно возрастающий, используется для дедупликации и offset в long-polling.