Skip to content

abugrin/list_users_v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Экспорт пользователей Яндекс 360

ВНИМАНИЕ! Данный скрипт не являются официальными и предоставляются как пример работы с API

📋 Требования

  • Python 3.8+
  • OAuth токен приложения Яндекс 360 с правами directory:read_users
  • ID организации Яндекс 360

🛠 Установка

  1. Клонируйте или скачайте проект:

    git clone <repository_url>
    cd list_users_v2
  2. Создайте виртуальное окружение (рекомендуется):

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    # или
    venv\Scripts\activate  # Windows
  3. Установите зависимости:

    pip install -r requirements.txt

🔑 Получение OAuth токена

  1. Авторизуйтесь на Яндексе с правами администратора организации
  2. Откройте страницу создания приложения: https://oauth.yandex.ru/client/new
  3. Заполните форму:
    • Название приложения
    • Платформа: "Веб-сервисы"
    • Redirect URI: https://oauth.yandex.ru/verification_code (для отладки)
  4. Выберите права доступа:
    • directory:read_users - Чтение данных о сотрудниках
  5. Создайте приложение и скопируйте ClientID
  6. Получите токен перейдя по ссылке:
    https://oauth.yandex.ru/authorize?response_type=token&client_id=<ваш_ClientID>
    

Подробнее: Документация Яндекс OAuth

⚙️ Настройка

Интерактивная настройка

python main.py --configure

Настройка через CLI

# Полная настройка
python config.py --org-id 1234567 --token "ваш_oauth_токен"

# С дополнительными параметрами
python config.py --org-id 1234567 --token "токен" --per-page 500

Параметры конфигурации

Параметр Описание По умолчанию
org_id ID организации Яндекс 360 -
token OAuth токен -
per_page Записей на страницу (1-1000) 1000

🚀 Использование

Интерактивный режим (рекомендуется)

python main.py

Появится меню с опциями:

  1. Экспорт пользователей в CSV
  2. Экспорт пользователей в XLSX
  3. Тест подключения к API
  4. Настройка конфигурации
  5. Показать информацию о конфигурации
  6. Выход

Командная строка

Тест подключения:

python main.py --test

Экспорт в CSV:

python main.py --export csv
python main.py --export csv --filename "пользователи_2024"

Экспорт в XLSX:

python main.py --export xlsx
python main.py --export xlsx --filename "отчет_пользователи"

📊 Экспортируемые данные

Приложение экспортирует следующие поля пользователей:

Поле Описание
ID Идентификатор пользователя
Логин Логин пользователя
Email Основной email адрес
Имя Имя пользователя
Фамилия Фамилия пользователя
Отчество Отчество пользователя
Отображаемое имя Полное имя для отображения
Должность Должность сотрудника
Пол Пол пользователя
Описание Описание пользователя
День рождения Дата рождения
Администратор Права администратора (Да/Нет)
Активен Статус активности (Да/Нет)
Часовой пояс Часовой пояс пользователя
Язык Язык интерфейса
Дата изменения статуса Дата изменения статуса активности

Исключаемые данные

  • Контакты
  • ID аватара
  • Алиасы
  • Группы
  • Внешний ID
  • ID подразделения
  • Дата создания
  • Дата изменения
  • Роботы (автоматически исключаются)

📁 Структура проекта

list_users_v2/
├── main.py              # Главное приложение
├── config.py            # Управление конфигурацией
├── api_client.py        # HTTP клиент для API
├── exporters.py         # Экспорт в различные форматы
├── logger.py            # Система логирования
├── requirements.txt     # Зависимости
├── logs/               # Папка с логами
│   └── yandex360_exporter_YYYY-MM-DD_HH-MM-SS.log
└── README.md           # Документация

📝 Логирование

Все операции логируются в единый файл в папке logs/:

  • yandex360_exporter_YYYY-MM-DD_HH-MM-SS.log - единый лог-файл для всех компонентов

Лог-файл создается при каждом запуске приложения и содержит записи от всех компонентов:

  • Основное приложение
  • API клиент (включая httpx)
  • Экспортеры (CSV/XLSX)
  • Система конфигурации

Логи не выводятся в консоль и не мешают интерактивному интерфейсу. Путь к текущему лог-файлу отображается в информации о конфигурации.

🔧 Конфигурационный файл

Настройки сохраняются в ~/.yandex360_exporter_config.json:

{
  "org_id": "1234567",
  "token": "ваш_oauth_токен",
  "per_page": 1000
}

📄 Лицензия

Этот проект предоставляется "как есть" и является примером работы с API Яндекс 360 для разработки собственных инструментов.


Версия: 2.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages