Yougile API для Python
Информация о библиотеке
Библиотека является разработкой стороннего разработчика для удобства обращения к Yougile API.
Установка
Если вы устанавливаете вручную, перед использованием библиотеки, необходимо установить следующее:
> pip install pydantic
> pip install requests
> pip install httpx
Если вы устанавливаете из PyPI, то эти библиотеки устанавливаются автоматически:
> pip install yougile-api
Wiki
У моделей есть правила:
- Название моделей полностью копируют URL этой модели на официальном API.
- У всех моделей есть описания параметров, краткого описания из официального API и ссылка на запрос.
- Названия параметров модели и их типизация идентичны параметрам из официального API (За исключением параметра
token)
Возможности
Токен можно передавать тремя способами:
- в саму модель
- в
yougile.query(...)/yougile.query_async(...) - в
yougile.Client(...)/yougile.AsyncClient(...)
Приоритет такой: явный аргумент функции/метода, затем токен клиента, затем токен модели.
Пример передачи токена в функцию запроса:
import requests
import yougile
import yougile.models as models
def yougile_get(model: yougile.BaseModel) -> requests.Response:
return yougile.query(model, token="TOKEN")
model = models.ChatMessageController_search(chatId="12324")
response = yougile_get(model)
for msg in response.json()["content"]:
print(msg["text"])
Примеры
1. Получаем список доступных компаний
import yougile # Импортируем библиотеку
import yougile.models as models # Импортируем модели
model = models.AuthKeyController_companiesList(
login="USERNAME",
password="PASSWORD",
) # Указываем модель запроса листа компаний через авторизацию
response = yougile.query(model) # Делаем запрос на сервер
print(response.text) # Получаем ответ
2. Создаем токен
import yougile
import yougile.models as models
model = models.AuthKeyController_create(
login="USERNAME",
password="PASSWORD",
companyId="12345",
)
response = yougile.query(model)
print(response.json()["key"])
3. Получаем историю сообщений
import yougile
import yougile.models as models
model = models.ChatMessageController_search(token="TOKEN", chatId="12324")
response = yougile.query(model)
for msg in response.json()["content"]:
print(msg["text"])
4. Асинхронный запрос: Загружаем файл
import asyncio
import yougile
import yougile.models as models
async def main():
model = models.FileController_uploadFile(
token="YOUR_TOKEN",
file=r"C:\Users\txello\Desktop\test.png",
)
response = await yougile.query_async(model)
print(response.json())
asyncio.run(main())
5. Self-hosted: указываем base_url
import yougile
import yougile.models as models
model = models.ChatMessageController_search(token="TOKEN", chatId="12324")
response = yougile.query(
model,
base_url="https://yougile.example.com",
)
for msg in response.json()["content"]:
print(msg["text"])
6. Клиент с настройками подключения
import yougile
import yougile.models as models
client = yougile.Client(
base_url="https://yougile.example.com",
token="TOKEN",
)
model = models.ChatMessageController_search(chatId="12324")
response = client.query(model)
for msg in response.json()["content"]:
print(msg["text"])
7. Асинхронный клиент с настройками подключения
import asyncio
import yougile
import yougile.models as models
async def main():
client = yougile.AsyncClient(
base_url="https://yougile.example.com",
token="TOKEN",
)
model = models.ChatMessageController_search(chatId="12324")
response = await client.query(model)
print(response.json())
asyncio.run(main())
Версии
v1.4.1
- Исправлена поддержка версии Python с
3.8+на3.10+(Спасибо ilsky69)
v1.4.0
- Добавлена поддержка self-hosted YouGile через параметр
base_urlвqueryиquery_async - Добавлены
yougile.Clientиyougile.AsyncClientдля хранения настроек подключения - Параметр
tokenв API-моделях сделан необязательным: токен теперь можно хранить только в клиенте или передавать в функцию запроса - Исправлены модели
CompanyController_getиCompanyController_update - Исправлены модели
TaskController_search,TaskController_searchReversed,TaskController_createиTaskController_update - Исправлены модели
GroupChatController_create,GroupChatController_update,WebhookController_createиWebhookController_put - Исправлены модели
DepartmentController_searchиChatMessageController_sendMessage - Исправлены модели
CrmContactPersonsController_createиCrmExternalIdController_findContactByExternalId - Обновлена документация и примеры использования
Спасибо ilsky69 за найденные проблемы и вклад в улучшение проекта.
v1.3.0
- Добавлена асинхронная поддержка через функцию
query_async(Через библиотекуhttpx). - Фильтрация версий изменена с последней на первую.
- Исправлены
docstrings.
v1.2.0
- Добавлены модели
CrmContactPersonsController_createиCrmExternalIdController_findContactByExternalId. - Изменена лицензия в файле
LICENSEсGNU GPL v3.0наMIT(Спасибо XTerris).
v1.1.0
- Добавлены новые модели:
CompanyController_get,CompanyController_update,FileController_uploadFile,TaskController_getChatSubscribers,TaskController_updateChatSubscribers - Добавлена возможность загрузки файла через
FileController_uploadFile - Добавлено CI/CD
- Исправлены модели
TaskController_getиTaskController_update(Спасибо XTerris) - Исправлены модели в документации
- Улучшена документация: Заменена на Google Docstring
- Выполнен рефакторинг кода
v1.0.1
- Исправлены модели
- Исправлены комментарии
v1.0.0
- Созданы первые модели
- Создано подключение к серверу API
Release files for yougile-api 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yougile_api-1.4.1.tar.gz | 17.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yougile_api-1.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.6 kB
Release files / yougile_api-1.4.1.tar.gz
| Download URL | yougile_api-1.4.1.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c660af2bbc3b943cea4b4f54638937f0fb4d15a2e5740e3566eb42c431be0574
|
|
BLAKE2b-256 checksum How to use checksums |
a377cdf9187a7c9f29061cb63b7b86f0ac2e2648c68c65632d2aeafa1dfc82d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / yougile_api-1.4.1-py3-none-any.whl
| Download URL | yougile_api-1.4.1-py3-none-any.whl |
|---|---|
| Size | 28.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81fd4f4b4e09a9403a562cdde6710b1e767c901f1f889346538ecf75863021ac
|
|
BLAKE2b-256 checksum How to use checksums |
778aac7b653739ebd4ea7cd78a1d8f3608f2bb22d8bdc9d4a379e49e8e8682f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|