Skip to main content

Командная строка для BOTIX Public API

Project description

botix-cli

Командная строка для BOTIX Public API. Делает то же, что веб-кабинет app.botix.pro, но из терминала: создание ключей, управление подписками webhook, list контактов, отправка сообщений, тестовые доставки. Аналоги — stripe-cli, gh, aws-cli.

Требования

  • Python 3.9+
  • Действующий API-ключ BOTIX (получается в кабинете в разделе «Настройки → API-ключи»)

Установка

pip install botix-cli

После установки команда botix доступна глобально.

Проверка:

botix --version

Первый запуск

botix login
# API-ключ (btx_live_... или btx_test_...): ********
# ✓ Профиль default сохранён (project_id=42).

Ключ кладётся в ~/.botix/config.yaml с правами 600 (читает только владелец).

Проверка авторизации:

botix whoami

Команды

Профили (auth)

Команда Что делает
botix login Сохранить API-ключ. Проверяет через GET /me
botix login --name staging Создать дополнительный профиль
botix logout Удалить весь конфиг
botix logout --name staging Удалить один профиль
botix whoami project_id, scopes, тариф активного ключа

Контакты

botix contacts list --tag VIP --channel telegram --limit 50
botix contacts get 42
botix contacts create --first-name "Иван" --phone "+79991112233" --tag VIP
botix contacts delete 42 --yes

Сообщения

botix messages send --contact-id 42 --channel telegram --text "Привет!"
botix messages list --contact-id 42 --limit 50

messages send автоматически использует Idempotency-Key — повтор той же команды не отправит сообщение второй раз.

Webhooks

botix webhooks list
botix webhooks create \
  --url https://example.com/hook \
  --events contact.created,message.received
botix webhooks test 7              # отправить тестовое событие
botix webhooks tail                # live-лента доставок (аналог `stripe listen`)
botix webhooks delete 7 --yes

webhooks tail опрашивает /api/v1/webhook-deliveries раз в 2 секунды (можно настроить флагом --interval) и печатает новые доставки в реальном времени. Прерывается через Ctrl+C.

API-ключи

botix keys list
botix keys create --name "Production" --scopes contacts:read,messages:send
botix keys revoke 12 --yes

Управление ключами — внутренняя возможность кабинета. Если ваш ключ не имеет прав keys:manage, CLI попросит создать ключ через app.botix.pro/settings?tab=api-keys.

Профили

Несколько профилей живут в одном ~/.botix/config.yaml:

default_profile: production
profiles:
  production:
    api_key: btx_live_...
    base_url: https://api.botix.pro
  staging:
    api_key: btx_test_...
    base_url: https://api.botix.pro

Выбрать профиль на конкретный вызов:

botix --profile staging contacts list

Переменные окружения

Переменная Эффект
BOTIX_API_KEY Полностью обходит конфиг — удобно для CI
BOTIX_BASE_URL Базовый URL API (по умолчанию https://api.botix.pro)
BOTIX_PROFILE Имя профиля по умолчанию (эквивалент --profile)
BOTIX_CONFIG_DIR Каталог конфигурации (для тестов и изолированных сред)

Пример использования в GitHub Actions:

- name: Отправить уведомление через BOTIX
  env:
    BOTIX_API_KEY: ${{ secrets.BOTIX_API_KEY }}
  run: |
    botix messages send --contact-id 42 --text "Деплой прошёл успешно"

Machine-readable вывод

Любая команда поддерживает флаг --json — печатает JSON вместо таблиц:

botix --json contacts list | jq '.[] | select(.tags | index("VIP"))'

Полезно для интеграций и скриптов.

FAQ

Где хранится ключ? ~/.botix/config.yaml, права 600 (читает только владелец).

Как удалить ключ полностью? botix logout --yes (удаляет весь файл) или botix logout --name production --yes (один профиль).

Можно ли использовать в CI без ~/.botix? Да, передайте BOTIX_API_KEY через переменные окружения. login тогда не нужен.

Что делать если 401 Unauthorized?

  1. Проверьте botix whoami — что ключ корректный.
  2. Проверьте scopes ключа в кабинете app.botix.pro/settings?tab=api-keys — у разных команд CLI разные требования (contacts:read для list, messages:send для send и т.д.).

botix webhooks tail ничего не показывает. Доставки появляются только при работе webhook. Запустите рядом botix webhooks test <id> — должна сразу появиться доставка.

Разработка

git clone https://github.com/BOTIX-pro/cli.git
cd cli
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

CI прогоняет тесты на Python 3.9 — 3.12 (см. .github/workflows/test.yml).

Лицензия

MIT — см. LICENSE.

Ссылки

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botix_cli-1.0.0.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

botix_cli-1.0.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file botix_cli-1.0.0.tar.gz.

File metadata

  • Download URL: botix_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for botix_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3b340b06e4ab1828ecb5b71d5beb04d4abf224d2689ae32cd0b062b283e8f378
MD5 0bf8fc2993d0aca722323ed7d43ce08e
BLAKE2b-256 2725d94f204c4cfc4f1e455911ffb5aca345083112db8273579e4f9dbd7112be

See more details on using hashes here.

File details

Details for the file botix_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: botix_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for botix_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4324d439f064de9d6d01f994a6d819b5d195ea537f2aa929d530480461b616a7
MD5 8588d6427cee1e0922d23e06787bb8e2
BLAKE2b-256 ab0b132c5de554e9f549eead2efb048fe6a9887c988232a18fbba709c9fb9fee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page