ydirect: консольный клиент API Яндекс.Директа

sourcecraft.dev/krivoshein-slon/direct это не лендинг услуги, а консольный клиент к API Яндекс.Директа v5. Пакет называется ydirect, версия в коде 0.1.0. Читает кабинет от имени пользователя: кто вошёл, какие клиенты у агентства, какие кампании в работе.

Это не веб-кабинет и не биддер. Секреты живут в локальном .env и в git не коммитятся. Маркетинговая страница direct.krivoshein.site к этому репозиторию не относится.

Что умеет

  • auth открывает OAuth, пишет токен в .env; есть --token и --code;
  • whoami вызывает clients.get: логин, тип, роль;
  • clients вызывает agencyclients.get: клиенты агентства;
  • campaigns --login ЛОГИН вызывает campaigns.get: Id, State, Status, Type, Name.

Для агентства в запрос уходит заголовок Client-Login. Остаток баллов API печатается из заголовка Units.

Стек

  • Python 3, запуск python -m ydirect;
  • httpx, pydantic / pydantic-settings, python-dotenv;
  • боевой хост и песочница API v5;
  • лицензия MIT (шаблон в репозитории).

Запуск

git clone https://git.sourcecraft.dev/krivoshein-slon/direct.git
cd direct
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python -m ydirect auth
.venv/bin/python -m ydirect whoami

Ключи приложения (ClientID и секрет) не заменяют доступ к API. Пока заявка в «Инструменты → API» кабинета Директа не одобрена, и боевой контур, и песочница отвечают кодом 58. Если доступ есть только в песочнице, клиент сам повторяет запрос на api-sandbox.direct.yandex.com. Принудительно: YANDEX_DIRECT_SANDBOX=1.

Ссылки


Комментарии загружаются…