SMeetBot API

SMeet Bot API

Изменения API

Здесь записывается каждое изменение контракта Bot API, новые версии сверху. Сам контракт опубликован как openapi.json.

Как записываются изменения#

  • Версия в пути, /bot-api/v1, меняется только тогда, когда работающая программа может сломаться. Внутри v1 SMeet добавляет новое: поля, типы событий, значения reason и status, коды ошибок. Программы пропускают то, чего не знают (Версии и совместимость).
  • В каждой записи указаны дата и версия, а также что нового, что исправлено, что устарело и что нужно изменить в программе.
  • Устаревшая возможность продолжает работать в v1; в её записи сказано, чем её заменить.
  • Машиночитаемый контракт текущей версии: openapi.json.

1.0.0 (2026-09-26)#

Первая публичная версия SMeet Bot API по адресу https://messenger.scrile.com/bot-api/v1.

Новое#

  • Методы: getMe, getUpdates, rejectUpdate, sendMessage, editMessageText, answerCallbackQuery, getMyCommands, setMyCommands, getDeliveryInfo, getWebhookInfo, uploadFile, sendPhoto, sendDocument, getFile и скачивание файлов по адресу /files/<file_id>/content.
  • Типы событий: message, message_edited, message_deleted, callback_query, chat_access_changed и file_status_changed.
  • Long polling с одним получателем на бота (consumer_id, аренда, epoch), подтверждение через offset, выданный сервером next_offset и диапазоны skipped. Вызов с чужой epoch ничего не подтверждает, а каждый CONSUMER_CONFLICT приходит с retry_after.
  • Доставка через webhook с подписью HMAC-SHA256, бюджетом ошибок на событие и circuit breaker. Ответы, которые может исправить только владелец (секрет не совпадает, адреса больше нет, перенаправление, сертификат), приостанавливают доставку, пока владелец не нажмёт «Возобновить доставку» в «Моих ботах»; за это время ничего не теряется, а SMeet BotFather сообщает владельцу о паузе и о событиях, ушедших в FAILED.
  • Idempotency-Key у каждого метода, который что-то меняет; ключи хранятся 7 дней.
  • Кнопки под сообщениями (callback-кнопки и ссылки https://) и редактирование собственных сообщений бота.
  • Фото и документы в обе стороны с антивирусной проверкой.
  • Список FAILED с повтором владельцем; event_id не меняется при повторах доставки и повторах владельцем.

Исправлено#

Ничего: это первая версия.

Устарело#

Ничего.

Переход#

Переходить не с чего. Программы, написанные по предварительной версии контракта, стоит сверить со справочником API, который собран из опубликованного контракта. Главные отличия: ответы webhook 401, 403, 404 и 410 приостанавливают доставку до возобновления владельцем, а не переводят события в FAILED; id в getMe означает идентификатор аккаунта бота, то же значение, что from.id в его сообщениях; вызов с чужой epoch ничего не подтверждает; у User нет language_code, а у файла нет статуса uploading.