Встройте BOTIX в свой продукт быстро и без сюрпризов — рабочий код и честные разборы, а не маркетинг.
На каждой стадии свой инструмент: симулятор для отладки payload, polling для прототипов, webhook с HMAC и replay-защитой для прода. Когда переключаться.
Через симулятор webhook.botix.pro гоняем payload до подключения канала, моделируем polling через cursor и делаем backoff по X-RateLimit-Reset. С готовыми curl.
Retry-политика webhook 1m/15m/1h/24h с dead-letter, критерии выбора polling vs webhook и backoff по X-RateLimit-*, чтобы не словить 429. Код на Python.
Через симулятор webhook.botix.pro проверяем, что обработчик отвергает битую подпись, повтор payload и старый timestamp. Позитивный тест и пять негативных.
HMAC-подпись webhook с timing-safe сравнением, тест обработчика через webhook.botix.pro без канала и выбор между polling и webhook на API BOTIX.
Обработчик webhook на Python + Flask: HMAC-SHA256 от raw body, timestamp против replay, идемпотентность по event_id и реакция на retry BOTIX. Полный код.
Три опоры production-webhook: проверка HMAC-подписи в постоянном времени, правильный HTTP-код на каждый сбой и retry 1m/15m/1h/24h с dead-letter.
Webhook — не POST на URL, а подсистема: HMAC-подпись, retry 1m/15m/1h/24h, dead-letter, идемпотентность и симулятор. Разбор доставки BOTIX по слоям.
Разбор: OpenAPI как единый источник правды против documentation/type/coverage drift, изоляция project_id для партнёрских ключей и минимальный Partner API.
Первый день с публичным API BOTIX: quickstart за 5 минут, где хранить ключ (7 антипаттернов) и журнал запросов в кабинете для отладки без тикетов.
Первая интеграция BOTIX заняла 38 минут, стала 4-7. Три решения DX: quickstart-артефакт, триал на проде вместо sandbox, партнёрские sub-проекты.
Первый день с Public API: что обязательно в quickstart, зачем триал вместо sandbox и как хранить ключ. Код, SQL, коды ошибок, чек-лист код-ревью.
Три решения BOTIX по developer experience: quickstart как отдельный жанр, триал вместо песочницы на проде, polling как честный fallback к webhook. С кодом.
Developer experience публичного API BOTIX: quickstart с ключом на странице, триал вместо sandbox-контура, webhook-симулятор. Код, таблицы, провалы.
Путь до первого JSON-ответа API BOTIX за 5 минут: developer-триал без мастера, ключ из quickstart, GET /me, SDK из OpenAPI 3.0 и триал вместо sandbox.
Как подключить SDK BOTIX без транзитивных зависимостей (PHP, Python, Node), хранить API-ключ через ENV и secret manager и зачем SDK открыты. Код и антипаттерны.
Как мы собрали три SDK (PHP/Python/Node) без единой зависимости, зачем построили webhook.botix.pro и почему выложили код в open-source на GitHub. Кейс.
Публичный SDK с 14 зависимостями = техдолг интегратора. Zero-deps, генерация из openapi.yaml, open-source SDK как канал доверия — как это сделано в BOTIX.
SDK BOTIX 1.1 (PHP, Python, Node): ноль зависимостей, генерация из openapi.yaml, триал вместо sandbox. Что изменилось и как мигрировать с 1.0.
Breaking change vs minor в публичном API, генерация трёх SDK из openapi.yaml и open-source как канал доверия — как обновлять SDK, не ломая интеграторов.
OAuth против API-ключа, Partner API с sub-проектами, изоляция project_id и open-source SDK — три свойства, которые делают из публичного API платформу.
Что превращает API в платформу для интеграторов: multi-tenant с изоляцией project_id, white-label через OAuth и open-source SDK. Разбор на реальном API BOTIX.
Год от внутреннего API до платформы: ручные SDK и три вида drift, переход на openapi-generator-cli, white-label через /partner/v1/*, open-source с MIT.
Zero-dependency SDK, открытый код на GitHub и партнёрский слой — три инженерных решения, которые превращают публичный API в платформу для интеграторов.
Как в BOTIX безопасность сделали удобной: хранение API-ключей (bcrypt, last4, scopes, ротация), audit-лог через очередь и выбор OAuth 2.0 vs API-key.
Опыт BOTIX: три места, где сломался webhook-receiver — timing-safe HMAC, replay (timestamp ±5 мин + nonce event.id, SET NX EX 900) и audit-логи в кабинете.
Три уровня защиты API из прода: HMAC-SHA256 от raw body с ротацией секрета, X-RateLimit-* с backoff, replay-защита timestamp ±5 мин + nonce. Код и edge cases.
Три слоя видимости публичного API BOTIX: формат ErrorResponse, заголовки X-RateLimit-* с backoff и audit-лог в кабинете. Фрагмент openapi.yaml и код на Python.
Три механизма production-ready API: Idempotency-Key против дублей, X-RateLimit-* с backoff и audit-лог в кабинете. Код, заголовки, TTL, имена таблиц.
Архитектура интеграции на сотню проектов: изоляция project_id, один SDK-инстанс на проект, scopes и ротация ключей, выбор polling vs webhook, хранение секретов.
Три механизма прод-интеграции: Idempotency-Key на POST, backoff по X-RateLimit-* и Retry-After, webhook против polling. На реальном Public API BOTIX v1.1.0.
OAuth 2.0 vs API-ключ, шифрование refresh-токенов AES-256-GCM, кеш инстансов SDK по client_id и партнёрский слой /partner/v1/*. Код на Node, факты BOTIX.
Чтобы стать платформой: OAuth 2.0 с PKCE, multi-tenant scope, изоляция project_id на всех уровнях, аудит по tenant. Фрагменты openapi.yaml и чек-лист.
Сторонний сервис на десяток аккаунтов — не «вшить ключ в .env». OAuth 2.0 с PKCE, шифрование refresh-токенов, один инстанс SDK на проект. Код на Node.
Агентство со 100 ботами: sub-проекты вместо N аккаунтов, webhook с polling-fallback, OAuth 2.0 поверх API-key. Разбор архитектуры интеграции BOTIX.
Чтение из API — три задачи: листать коллекции, ловить события, разбирать инциденты. Под каждую свой паттерн: cursor, webhook вместо polling, журнал в кабинете.
«Сначала запустим, потом доработаем мелочи» в публичном API = breaking change на каждом релизе. Почему формат ошибки, cursor и rate-limit — это контракт.
Чек-лист, отделяющий рабочий POST от готового к интеграторам: Idempotency-Key с TTL и коллизиями, серверный retry 1m/15m/1h/24h, заголовки X-RateLimit.
Три механизма для трёх классов проблем: Idempotency-Key от дублей POST, HMAC от phishing webhook, timestamp + event.id от replay. Разбор с кодом Verifier.
Кейс BOTIX: три жалобы после v1.0 — дубли POST, потеря записей на offset, пропавший webhook. Как добавили Idempotency-Key, cursor и retry с dead-letter.
Idempotency-Key на POST, разбор error response, cursor вместо offset, таймауты и retry только на нужные коды. Пять правил с кодом на Python.
Публичный API — это контракт: что такое breaking change и зачем 12 месяцев deprecation, как делать backoff по X-RateLimit-* и что нужно API для white-label.
Как перевезти интеграторов с v1.0 на v1.1 без обрыва: критерий breaking change, X-API-Deprecation в каждом ответе, cursor вместо offset и audit-лог отстающих.
Что считать breaking change, cursor вместо offset и три SDK из openapi.yaml. Разбор решений при открытии публичного API BOTIX v1.1.0.