🌙

Ошибки

Ошибки

При ошибке 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 просмотров