Возможности и ограничения
Что есть
| Что поддерживается | |
|---|---|
| Сообщения | sendMessage (HTML / Markdown, до 4096 символов), ответ с цитатой, правка, удаление, «печатает…» (sendChatAction) |
| Файлы | Фото, документы, видео, аудио, голосовые: отправка, приём, getFile, повторная отправка по file_id |
| Кнопки | Inline-кнопки с url и callback_data, editMessageReplyMarkup, answerCallbackQuery, обычная клавиатура |
| Меню «/» | setMyCommands / getMyCommands / deleteMyCommands; команды приходят с entities |
| Получение | getUpdates (long polling до 50 с, offset, хранение 24 ч) и вебхук с повторной доставкой |
| Чаты | getChat, getChatMember (kicked / left различаются), getChatMemberCount, getChatAdministrators |
| Только в Лизе | startChat (написать первым), from.liza_user_id, sendInvoice (своя оплата Лизы через интеграцию Prodamus) |
Чего нет
Метод, которого нет в справочнике, отвечает 400
Method '…' not supported in MVP. Оборачивайте такие вызовы в обработку
ошибок, чтобы бот не падал.
Сознательно не реализованы: реакции (setMessageReaction), закрепление
(pinChatMessage), пересылка и копирование (forwardMessage, copyMessage),
inline-режим, ForceReply, запрос телефона и геопозиции кнопкой, медиаальбомы,
стикеры, опросы, игры, Telegram Payments и Stars, управление участниками и
чатом, темы форумов (message_thread_id). Картинку правкой не заменить
(editMessageMedia нет) — только подпись через editMessageCaption.
Параметр allowed_updates игнорируется.
Шифрование
Боты работают только в незашифрованных чатах: у ботов нет сквозного шифрования, сообщения зашифрованных чатов им не приходят. В зашифрованном чате бот ничего не увидит.
Кто начинает разговор
Бот получает сообщения и пишет только в чатах, куда его пригласили (или где
человек сам открыл с ним личный чат). Написать первым можно только через
startChat и только с разрешения администратора Liza.
Хранение
| Что | Сколько хранится | Что будет со старым |
|---|---|---|
Очередь обновлений (getUpdates и вебхук) | 24 часа | Неподтверждённые обновления старше 24 часов удаляются |
| Сопоставления сообщений, кнопок и callback | 30 дней | Более старые сообщения нельзя править и удалять (400), на нажатия их кнопок нельзя ответить, а ответ на них уходит без цитаты |
Нажатие кнопки для answerCallbackQuery | 15 минут | Ответить на более старое нажатие нельзя (400) |
Нажимаемые кнопки продолжают работать, пока ими пользуются: нажатие продлевает срок хранения меню.
Ошибки
Ошибка приходит в форме { "ok": false, "error_code": …, "description": "…" }.
Частые случаи:
| Код | description | Когда |
|---|---|---|
| 400 | Method '…' not supported in MVP | Метода нет в Liza Bot API |
| 400 | chat not found | getChat* для чата, где бота нет |
| 400 | No session found for chat_id … | Отправка в чат, куда бота не приглашали |
| 400 | user not found | startChat несуществующему пользователю |
| 400 | message is not modified | Правка, которая ничего не меняет |
| 400 | message to edit not found, message can't be edited / deleted | Сообщение не найдено, чужое или старше 30 дней |
| 400 | query is too old and response timeout expired or query ID is invalid | answerCallbackQuery с чужим, повторным или старше 15 минут callback_query_id |
| 400 | MESSAGE_TOO_LONG | Текст answerCallbackQuery длиннее 200 символов |
| 400 | wrong parameter action in request | sendChatAction с действием, которого нет в Telegram |
| 403 | bot was blocked by the user | Человек ушёл из личного чата с ботом, отклонил приглашение или удалил бота |
| 403 | bot was kicked from the group chat | Отправка в группу, из которой бота исключили |
| 403 | this bot is not allowed to start chats | startChat без разрешения |
| 409 | Conflict: … | Второй одновременный getUpdates на том же токене или getUpdates при заданном вебхуке |
| 429 | Too Many Requests: … | Превышен лимит (например, 50 новых чатов в сутки у startChat); подождите retry_after секунд |
Точные формулировки и полный список — у каждого метода в справочнике.