|
|
|
# yandex_connect
|
|
|
|
|
|
|
|
Библиотека python для использования API Yandex connect / Яндекс коннект.
|
|
|
|
В настоящий момент реализованы все функции Directory, версии 6.
|
|
|
|
|
|
|
|
https://tech.yandex.ru/connect/directory/api/about-docpage/
|
|
|
|
|
|
|
|
### Установка
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git clone https://github.com/zt50tz/yandex-connect
|
|
|
|
cd yandex-connect
|
|
|
|
python setup.py install
|
|
|
|
```
|
|
|
|
|
|
|
|
Либо:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
pip install yandex-connect
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Получение токена
|
|
|
|
|
|
|
|
Необходимо зарегистрировать приложение на странице https://oauth.yandex.ru/
|
|
|
|
|
|
|
|
```python
|
|
|
|
from yandex_connect import token_get_by_code
|
|
|
|
token_get_by_code()
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Пример
|
|
|
|
|
|
|
|
```python
|
|
|
|
from yandex_connect import YandexConnectDirectory
|
|
|
|
api = YandexConnectDirectory('<OAuth TOKEN>', org_id=None) # создание
|
|
|
|
api.user_add('test', 'test234test') # добавление сотрудника
|
|
|
|
api.user_list_full() # просмотр всех сотрудников
|
|
|
|
```
|
|
|
|
|
|
|
|
Сервис использует идентификационные номера для всех объектов, а не
|
|
|
|
значимые алиасы, что может быть усложняющим фактором при быстрой
|
|
|
|
разработке, либо при исполнении функций из командной строки. То есть,
|
|
|
|
для того, чтобы получить информацию о пользователе, необходимо выполнить
|
|
|
|
следующий код:
|
|
|
|
|
|
|
|
```python
|
|
|
|
api.user_info(1000000000000000)
|
|
|
|
|
|
|
|
>> {u'nickname': u'test', u'id': 1000000000000000}
|
|
|
|
```
|
|
|
|
|
|
|
|
Он не особо удобный для чтения и написания. В связи с этим добавлена
|
|
|
|
возможность выполнить и такой код:
|
|
|
|
|
|
|
|
```python
|
|
|
|
api.user_info('test@test.ru')
|
|
|
|
|
|
|
|
>> {u'nickname': u'test', u'id': 1000000000000000}
|
|
|
|
```
|
|
|
|
|
|
|
|
Так же, это справедливо для методов относительно групп. То есть, вместо:
|
|
|
|
```python
|
|
|
|
api.group_member_add(1, 1000000000000000)
|
|
|
|
```
|
|
|
|
|
|
|
|
Можно написать:
|
|
|
|
```python
|
|
|
|
api.group_member_add("group_users@test.ru", "test@test.ru")
|
|
|
|
```
|
|
|
|
|
|
|
|
Везде где используются параметры ```user_id``` и ```group_id``` можно
|
|
|
|
использовать как ID, так и почту.
|
|
|
|
|
|
|
|
### Отладка
|
|
|
|
Что то может пойти не так. Чтобы увидеть какие данные уходят и
|
|
|
|
возвращаются, можно использовать следующий код:
|
|
|
|
|
|
|
|
```python
|
|
|
|
import logging
|
|
|
|
logger = logging.getLogger('YandexConnectRequest')
|
|
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Методы
|
|
|
|
------
|
|
|
|
|
|
|
|
##### Сотрудники
|
|
|
|
- ```user_info``` — Получение информации о сотруднике
|
|
|
|
- ```user_list``` - Получение списка сотрудников
|
|
|
|
- ```user_list_full``` - Получение полного списка сотрудников, без страниц
|
|
|
|
- ```user_add``` - Добавление сотрудника
|
|
|
|
- ```user_upd``` - Изменение сотрудника
|
|
|
|
- ```user_alias_add``` - Добавление алиаса для сотрудника
|
|
|
|
|
|
|
|
##### Отделы
|
|
|
|
- ```department_list``` - Получение списка отделов
|
|
|
|
- ```department_list_full``` - Получение полного списка отделов
|
|
|
|
- ```department_info``` - Получение информации об отделе
|
|
|
|
- ```department_add``` - Добавление отдела
|
|
|
|
- ```department_upd``` - Изменение отдела
|
|
|
|
- ```department_del``` - Удаление отдела
|
|
|
|
|
|
|
|
##### Команды
|
|
|
|
- ```group_list``` - Список команд
|
|
|
|
- ```group_list_full``` - Полный список команд
|
|
|
|
- ```group_info``` - Получение информации о команде
|
|
|
|
- ```group_add``` - Добавление команды
|
|
|
|
- ```group_upd``` - Изменение команды
|
|
|
|
- ```group_member_list``` - Участники команды
|
|
|
|
- ```group_member_add``` - Добавить участника команды. В качестве
|
|
|
|
параметра ```user_id``` можно использовать массив ID/почт.
|
|
|
|
- ```group_member_del``` - Удалить участника команды
|
|
|
|
- ```group_member_update``` - Изменение участников команды
|
|
|
|
|
|
|
|
##### Домены
|
|
|
|
- ```domain_list``` - Получение списка доменов
|
|
|
|
- ```domain_add``` - Добавить домен
|
|
|
|
- ```domain_del``` - Удалить домен
|
|
|
|
|
|
|
|
##### Организации
|
|
|
|
- ```organization_list``` - Список организаций
|