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.