Миграция с imbot на imbot.v2
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Эта страница помогает перенести интеграцию с устаревшего API imbot на imbot.v2: выбрать способ доставки событий, сопоставить методы и поля запросов, обновить обработку ответов.
Методы v1 и v2 работают параллельно. Боты, зарегистрированные через v1, видны в v2 и наоборот. Однако формат событий различается — бот получает события только в формате той версии API, через которую был зарегистрирован.
Порядок перехода
- Найдите используемые методы и события v1 в таблицах ниже. Сверьте параметры каждого вызова со страницей соответствующего метода v2: названия полей, обязательность и допустимые значения могут отличаться.
- Проверьте, через какую версию API зарегистрирован бот. Замена вызовов v1 на v2 сама по себе не меняет формат событий существующего бота. Если нужны события
ONIMBOTV2*, учитывайте версию регистрации при планировании перехода и настройте обработку нового формата событий. - Выберите режим доставки событий для бота v2 по таблице ниже.
- Перенесите параметры запросов по таблице методов и проверьте авторизацию.
- Сверьте ответы и обработчики событий с форматами v2. Проверьте новый вызов и получение события до переключения рабочего сценария. Для примера сравнения запросов и ответов смотрите отправку сообщения.
Как выбрать режим событий
|
Режим v2 |
Когда подходит |
Что настроить |
|
|
У приложения нет публичного URL для событий или нужен контроль очереди через |
Укажите |
|
|
У приложения есть публичный HTTP-обработчик событий |
Укажите |
Подробности реализации обоих режимов — в разделе Режимы доставки событий.
Авторизация при переходе
Методы обеих версий используют scope imbot. При OAuth вызовы v2 не требуют botToken. При авторизации через вебхук передавайте токен бота botToken, указанный при его регистрации: CLIENT_ID из v1 не является тем же токеном. Храните botToken вне публичного кода и логов.
Методы
|
v1 |
v2 |
Изменения |
|
|
||
|
|
||
|
Подписки |
||
|
Возвращает массив объектов Bot вместо плоского списка |
||
|
— |
Новый метод: получение одного бота по ID |
|
|
|
||
|
|
||
|
Без изменений |
||
|
— |
Новый метод: отметить сообщения прочитанными |
|
|
— |
Новый метод: добавить реакцию |
|
|
— |
Новый метод: удалить реакцию |
|
|
imbot.v2.Chat.Message.Reaction.add, imbot.v2.Chat.Message.Reaction.delete |
В v2 установка и снятие реакции разделены на два метода |
|
|
|
||
|
Возвращает объект Chat |
||
|
Возвращает объект Chat |
||
|
В v2 изменение заголовка выполняется через универсальное обновление свойств чата |
||
|
В v2 изменение цвета выполняется через универсальное обновление свойств чата |
||
|
В v2 изменение аватара выполняется через универсальное обновление свойств чата |
||
|
— |
Новый универсальный метод: обновление свойств чата |
|
|
— |
||
|
— |
||
|
— |
||
|
— |
||
|
В v2 назначение и снятие прав администратора разделены на два метода |
||
|
— |
||
|
— |
||
|
— |
Новый метод: управление полем ввода |
|
|
|
||
|
|
||
|
— |
Новый метод: список команд бота |
|
|
— |
||
|
— |
||
|
— |
Новый метод: polling событий (fetch-режим) |
|
|
— |
Новый метод: загрузка файла в чат |
|
|
— |
Новый метод: получение ссылки на скачивание |
|
|
— |
Новый метод: получение номеров ревизий API |
В таблице показаны поля с соответствием в указанных методах v2. Для полей типа boolean преобразуйте значения Y/N в true/false. При создании чата значение TYPE=CHAT соответствует fields.type=chat, а TYPE=OPEN — fields.type=open. У отдельных параметров v1 нет прямого поля в соответствующем методе v2, например у EVENT_COMMAND_ADD в Command.register и MENU в Chat.Message.send.
Пример: отправка сообщения в v1 и v2
Ниже — запросы через OAuth и ответы из страниц методов imbot.message.add и imbot.v2.Chat.Message.send. Это два независимых примера: значения ID и текста в них различаются.
v1. Текст сообщения передается на верхнем уровне в MESSAGE:
{
"BOT_ID": 39,
"DIALOG_ID": "chat123",
"MESSAGE": "Текст сообщения",
"auth": "**put_access_token_here**"
}
Ответ v1 возвращает ID сообщения числом в result:
{
"result": 19880117,
"time": {
"start": 1728626400.123,
"finish": 1728626400.234,
"duration": 0.111,
"processing": 0.045,
"date_start": "2024-10-11T10:00:00+03:00",
"date_finish": "2024-10-11T10:00:00+03:00",
"operating_reset_at": 1762349466,
"operating": 0
}
}
v2. Текст сообщения передается во вложенном поле fields.message:
{
"botId": 456,
"dialogId": "chat5",
"fields": {
"message": "Hello from bot!"
},
"auth": "**put_access_token_here**"
}
Ответ v2 возвращает ID сообщения в result.id:
{
"result": {
"id": 789,
"uuidMap": [],
"failureMap": []
},
"time": {
"start": 1728626400.123,
"finish": 1728626400.234,
"duration": 0.111,
"processing": 0.045,
"date_start": "2024-10-11T10:00:00+03:00",
"date_finish": "2024-10-11T10:00:00+03:00"
}
}
События
|
v1 |
v2 |
Изменения |
|
Данные в формате V2 (camelCase, объекты Bot/Chat/Message/User) |
||
|
Данные в формате V2: camelCase и вложенные объекты |
||
|
Данные в формате V2: camelCase и вложенные объекты |
||
|
Данные в формате V2: camelCase и вложенные объекты |
||
|
Данные в формате V2: camelCase и объект |
||
|
Данные в формате V2: camelCase и вложенные объекты; поле |
||
|
ONIMBOTCONTEXTGET |
Данные в формате V2: camelCase и вложенные объекты |
|
|
— |
Новое событие: изменение реакции на сообщение бота |
Ключевые отличия v2
Формат данных
- camelCase вместо UPPER_CASE для ключей — например,
chatIdвместоCHAT_ID - Вложенные объекты вместо плоских полей — Bot, Chat, Message, User
- Часть флагов передается как
true/falseвместо строк"Y"/"N", напримерfields.commonу команды. Проверяйте тип на странице метода:fields.urlPreviewв Chat.Message.update принимаетY/N
Доставка событий
В v1 события доставляются через webhook. В v2 доступны fetch и webhook; условия выбора режима приведены выше.
Параметры методов
Параметры v1 передаются на верхнем уровне (MESSAGE, BOT_ID, TYPE и другие), а в v2 используются camelCase-имена и вложенные поля fields.*, включая fields.properties.* для свойств бота. Конкретные соответствия приведены в таблице методов.
Авторизация
В v1 доступны OAuth и авторизация через вебхук с полем CLIENT_ID; в v2 — OAuth или вебхук с botToken. Условия работы с токеном описаны в разделе Авторизация при переходе.
Изменения внутри v2
API imbot.v2 продолжает развиваться. Новые возможности, исправления и изменения с потерей обратной совместимости публикуются в Журнале изменений API imbot.v2.
Если формат вызова или ответа метода меняется, предыдущий вариант продолжает поддерживаться 6 месяцев с момента публикации изменения.