Формат запросов
- Content-Type:
application/json - Ответ: всегда JSON
- CSRF: отключён
Проверка доступа (ключи)
Есть два варианта авторизации:
1. Секретный ключ бота (secretKey)
- Передаётся в query:
?secretKey=<значение> - Если передан — проверяется только он; token не требуется
- Ключ должен совпадать с секретным ключом бота в системе (Секретный ключ можно посмотреть в разделе "Обновить токен") и он меняется при обновлении токена.
- При неверном ключе: ответ с ошибкой
secretKey is not valid
2. Токен бота (token)
- Передаётся в query:
?token=<значение> - Используется, если secretKey не передан
- Токен должен совпадать с токеном бота в системе
- При отсутствии:
token not found; при неверном:token is not valid
Итог: либо передаёте secretKey в query (и тогда token не нужен), либо для непубличных методов передаёте token в query.
Приватные методы (пользовательский доступ)
Некоторые endpoint, требуют авторизации от имени пользователя бота. В теле POST обязательно:
- bot_id — ID бота
- user_id — ID пользователя бота
- secret_user_key — секретный ключ пользователя для этого бота (генерируется/хранится на стороне клиента)
При неверном или отсутствующем secret_user_key возвращается ошибка (например, not valid user secret key).
Тариф и тип бота
- Для большинства методов требуется премиум-тариф . При тарифе «Старт» возвращается ошибка вида
tariff have been premium. - В боте "магазин" дополнительно проверяется тип бота (SHOP / SHOP_CART); при неверном типе — 401.
Формат ответа
- Успех:
{ "result": true, "data": { ... } } - Ошибка:
{ "result": false, "message": "текст ошибки" }
При ошибке валидации ключей/токена запрос не доходит до action: ответ с result: false и соответствующим message формируется в конструкторе базового контроллера.