OnyxGram
Главная О проекте Скачать Bot API Ads FAQ Безопасность
Bot API
Документация История изменений Список методов Ошибки
История изменений27 августа 2026

OnyxGram Developers

27 августа 2026

4 сборки за день, +20 −0 пунктов API.

Обязательные поля участника чата

+1−0
chatmember-required-fields 19:31 #
  • +can_be_edited в ChatMember — может ли спрашивающий бот менять права этого администратора. Поля не было вообще, хотя у варианта administrator оно обязательное.
  • ~until_date приходит у статусов restricted и kicked всегда, 0 означает «навсегда». Раньше вместо нуля поле просто отсутствовало.
  • ~can_edit_tag приходит у статуса restricted. Значение повторяет право писать: отдельного ограничения за ним не стоит.
  • ~Те же три поля исправлены и в ответе getChatMember, не только в обновлении chat_member.

Одного пропущенного поля хватает, чтобы обновление стало нечитаемым целиком — библиотека отказывается собирать объект участника, а не подставляет пустое значение. Обновление при этом остаётся в очереди и приходит снова каждые несколько секунд, так что бот перестаёт разбирать и все следующие обновления.

Восемь типов обновлений не доходили до ботов

+0−0
update-store-all-kinds 19:18 #
  • ~Очередь обновлений сохраняет и читает все пятнадцать видов. Раньше в неё попадали только message, channel_post, callback_query, inline_query, chosen_inline_result, pre_checkout_query и guest_message, а chat_member, my_chat_member, chat_join_request, message_reaction, poll, poll_answer, edited_message и edited_channel_post терялись между сервером и ботом.
  • ~Касается и getUpdates, и вебхука: оба берут обновления из одного хранилища, так что смена способа доставки ничего не меняла.

Выглядело это как обновление без содержимого: счётчик update_id увеличивался, бот получал ответ — и все поля в нём были пустые. Типизированные библиотеки на такое не жалуются: раз ни одно поле не заполнено, ни один обработчик не совпадает.

Поэтому chat_member, my_chat_member и chat_join_request из сборки chatmember до этой сборки ни разу не дошли ни до одного бота, хотя на сервере формировались правильно. То же самое случилось с poll и poll_answer из сборки polls-members.

sendPoll принимает запросы от библиотек

+0−0
poll-form-arrays 18:50 #
  • ~sendPoll разбирает options, correct_option_ids и country_codes, когда запрос пришёл как multipart/form-data. До этого метод отвечал Bad Request: poll options must be an array на совершенно правильный вызов.

В форме нет типов: любое поле — строка, и массив приезжает текстом ["да","нет"]. Остальные методы это уже учитывали, sendPoll — нет. Так запрос отправляют aiogram, python-telegram-bot, telegraf и почти всё, что умеет прикладывать файлы; в чистом JSON опросы работали и до этой сборки.

Опросы целиком, дата входа и бан до вступления

+19−0
polls-members 18:38 #
  • +Обновления об опросах: poll_answer — кто за что проголосовал, poll — новые счётчики и закрытие. poll_answer приходит только по неанонимному опросу: в анонимном сервер не раскрывает голосующего никому, включая автора.
  • +Полный набор параметров sendPoll: correct_option_ids, question_parse_mode, question_entities, explanation_parse_mode, explanation_entities, open_period, close_date, allows_revoting, shuffle_options, allow_adding_options, hide_results_until_closes, members_only, country_codes. Варианты можно передавать объектами со своей разметкой.
  • +joined_date и subscription_until_date в ChatMember. Дату вступления участника бот раньше не видел вообще.
  • ~banChatMember и unbanChatMember работают по пользователю, которого в чате нет, а getChatMember на постороннего отдаёт статус left вместо ошибки.
  • ~chat_member и message_reaction нужно запрашивать в allowed_updates по имени. Раньше сервер отдавал всё подряд, и бот, написанный до появления этих типов, получал незнакомые ему обновления.

Опрос-капча собирается так: type=quiz, is_anonymous=false, allows_revoting=false, open_period под таймаут. Ограничённый участник голосовать может — мут не мешает пройти проверку.

Правильные ответы викторины сервер не раскрывает до того, как человек проголосовал или опрос закрылся: в poll у неотвеченной викторины correct_option_id и explanation отсутствуют.

OnyxGram is not affiliated with Telegram FZ-LLC.
Privacy Policy Terms of Service О проекте Bot API FAQ Безопасность