Ошибки
Ошибки
При ошибке HTTP-статус равен полю error_code, тело — JSON:
{ "ok": false, "error_code": 403, "description": "Forbidden: bot is not member of chat" }
Коды
| Код | Когда возникает |
|---|---|
| 400 | Не передан обязательный параметр или значение недопустимо |
| 401 | Токен отсутствует, невалиден или отозван |
| 403 | Токен не бота, бот не в чате, нет нужного права, аккаунт заморожен или заблокирован |
| 404 | Чат, сообщение, пользователь или метод не найдены |
| 409 | Уже выполняется getUpdates для этого бота |
| 422 | Файл не прошёл проверку: формат или размер |
| 429 | Превышен лимит 30 сообщений в минуту или активен медленный режим |
Типичные описания
description | Причина |
|---|---|
Forbidden: bot token required | Использован пользовательский токен вместо bot_… |
Forbidden: bot is not member of chat | Бота нет в чате |
Forbidden: only admins can post in channel | Бот не администратор канала |
Forbidden: only admins can send messages | В чате включён режим «пишут только админы» |
Forbidden: sending messages is disabled in this group | Отключено право участников send_messages |
Forbidden: sending media is disabled in this group | Отключено право send_media |
Forbidden: links are disabled in this group | Отключено право embed_links, а в тексте есть ссылка |
Slow mode: wait Ns | Медленный режим, повторите через N секунд |
Conflict: another getUpdates is running | Запущено несколько экземпляров бота |
Too Many Requests | Больше 30 сообщений в минуту |
Unknown method | Опечатка в method |
Обработка в pykodaribot
Любой не-ok ответ поднимает исключение BotError с полями error_code и description:
from pykodaribot import Bot, BotError
try:
await bot.send_message(chat_id, "Привет")
except BotError as e:
if e.error_code == 429:
await asyncio.sleep(5)
else:
print(e.error_code, e.description)
18 просмотров