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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| yougile_api-1.4.1.tar.gz | 17.5 kB | Without provenance | Details for yougile_api-1.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| yougile_api-1.4.1-py3-none-any.whl | Python 3 | none | any | Details for yougile_api-1.4.1-py3-none-any.whl |
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
|
Security for yougile-api 1.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.