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

Возможности и ограничения

Что есть​

Что поддерживается
Сообщения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 часов удаляются
Сопоставления сообщений, кнопок и callback30 днейБолее старые сообщения нельзя править и удалять (400), на нажатия их кнопок нельзя ответить, а ответ на них уходит без цитаты
Нажатие кнопки для answerCallbackQuery15 минутОтветить на более старое нажатие нельзя (400)

Нажимаемые кнопки продолжают работать, пока ими пользуются: нажатие продлевает срок хранения меню.

Ошибки​

Ошибка приходит в форме { "ok": false, "error_code": …, "description": "…" }. Частые случаи:

КодdescriptionКогда
400Method '…' not supported in MVPМетода нет в Liza Bot API
400chat not foundgetChat* для чата, где бота нет
400No session found for chat_id …Отправка в чат, куда бота не приглашали
400user not foundstartChat несуществующему пользователю
400message is not modifiedПравка, которая ничего не меняет
400message to edit not found, message can't be edited / deletedСообщение не найдено, чужое или старше 30 дней
400query is too old and response timeout expired or query ID is invalidanswerCallbackQuery с чужим, повторным или старше 15 минут callback_query_id
400MESSAGE_TOO_LONGТекст answerCallbackQuery длиннее 200 символов
400wrong parameter action in requestsendChatAction с действием, которого нет в Telegram
403bot was blocked by the userЧеловек ушёл из личного чата с ботом, отклонил приглашение или удалил бота
403bot was kicked from the group chatОтправка в группу, из которой бота исключили
403this bot is not allowed to start chatsstartChat без разрешения
409Conflict: …Второй одновременный getUpdates на том же токене или getUpdates при заданном вебхуке
429Too Many Requests: …Превышен лимит (например, 50 новых чатов в сутки у startChat); подождите retry_after секунд

Точные формулировки и полный список — у каждого метода в справочнике.