Python wrapper package for easy integration with the Digiseller API
Project description
English documentation available here.
Digiseller API Python — это неофициальная Python-библиотека для взаимодействия с API Digiseller.
Важное примечание: Данный проект не связан с официальной командой разработчиков Digiseller и не является официальной библиотекой.
Возможны неточности в некоторых запросах, поскольку комплексное тестирование не проводилось, так как некоторые методы API, описанные в документации Digiseller, могут не соответствовать своему описанию.
Полную документацию API можно найти на сайте Digiseller.
Список методов библиотеки и их соответствие официальному API можно найти в MAPPING.md.
Методы API для покупателей из блока 'Оплата' недоступны в библиотеке.
Установка
С использованием PyPI:
pip install digiseller-api-python
Установка из репозитория GitHub:
pip3 install git+https://github.com/Ernieleo/digiseller-api-python.git
Пример использования
Чтобы использовать Digiseller API, вам понадобятся API ключ и ID продавца:
Не забывайте - ваш API ключ должен оставаться в безопасности, не публикуйте его в интернете.
Пример кода
from digiseller_api_python import DigisellerApi
# Создание экземпляра API-клиента
# Вы можете указать timeout (по умолчанию 60) и proxy (по умолчанию None)
digiseller_api = DigisellerApi(
seller_id="11155533",
api_key="ZA1SG0YDA46DV0Z39F01Z11017V39",
timeout=120,
proxy="http://user:pass@127.0.0.1:8080"
)
# Пример функции для получения данных, указанных пользователем при заказе, по уникальному коду
def get_account_info_from_digiseller(unique_code):
email, password = None, None
try:
# Выполняем запрос
data = digiseller_api.unique_code(unique_code)
# Извлекаем необходимые данные
for option in data.get("options", []):
if option["name"] in ["Почта аккаунта ChatGPT", "ChatGPT account email"]:
email = option["value"]
elif option["name"] in ["Пароль аккаунта ChatGPT", "ChatGPT account password"]:
password = option["value"]
return email, password
except Exception as e:
# Обработка исключений
print(f"Ошибка: {e}")
return None, None
# Использование функции для получения информации
unique_code = "ВАШ_УНИКАЛЬНЫЙ_КОД"
email, password = get_account_info_from_digiseller(unique_code)
print("Email:", email)
print("Password:", password)
Этот пример показывает, как использовать DigisellerApi для получения данных, введенных покупателем при оформлении заказа.
Функция get_account_info_from_digiseller выполняет запрос по уникальному коду и ищет данные по заданным названиям полей. Названия полей учитывают возможность различий в языке зависимых от выбранного пользователем на сайте.
Дополнительный пример
Для работы этого примера требуется установить библиотеку Pillow (pip install Pillow).
from digiseller_api_python import DigisellerApi
from PIL import Image
from io import BytesIO
# Инициализируем клиент (даже если метод не требует авторизации, архитектура библиотеки требует экземпляр)
# Для публичных методов можно передать любые или пустые seller_id/api_key,
# но лучше использовать реальные, чтобы избежать путаницы.
digiseller_api = DigisellerApi(seller_id="YOUR_SELLER_ID", api_key="YOUR_API_KEY")
image = digiseller_api.get_main_img(id_d=4470041, maxlength=400, w=200, h=150, crop=False)
# Открываем изображение из байтов напрямую
image_bytes = image.encode() if isinstance(image, str) else image
image = Image.open(BytesIO(image_bytes))
image.show()
В данном примере представлено взаимодействие с функцией получения основного изображения товара.
Возвращаемые данные
- JSON (
application/json): Возвращается как словарь Python. - XML (
application/xmlилиtext/xml): Возвращается как строка XML. - Изображение (
image/*): Возвращается как байтовый объект. - Текст (
text/plainи другие текстовые форматы): Возвращается как строка. - StatusCode: 204 (NoContent) → {"success": True}
Обработка исключений
Библиотека предоставляет собственные классы исключений, позволяющие точно обрабатывать ошибки при работе.
Базовое исключение
from digiseller_api_python import DigisellerError
Все исключения библиотеки наследуются от DigisellerError, поэтому можно перехватывать как конкретные, так и общие ошибки:
try:
digiseller_api.get_token()
except DigisellerError as e:
print(f"Ошибка Digiseller API: {e}")
Доступные исключения
| Исключение | Описание |
|---|---|
DigisellerError |
Базовое исключение |
DigisellerTimeoutError |
Тайм-аут при запросе к API |
DigisellerInvalidResponseError |
Ответ от API не соответствует ожиданиям (по документации) |
DigisellerHTTPError |
Ошибка HTTP (например, 400, 500 и т.д.) |
DigisellerUnavailableError |
Digiseller загружается, но не работает или обновляется |
DigisellerAPIAuthError |
Недостаточно прав. Проверьте права доступа с ключом API |
DigisellerProxyError |
Ошибка при подключении через прокси |
Вы можете использовать исключения для логирования, отладки
Разработка
Приветствуется вклад в развитие проекта!
Если вы хотите помочь с поддержанием актуальности и дальнейшей разработкой, пожалуйста, следуйте официальным правилам API сервиса Digiseller и придерживайтесь общего стиля кода проекта.
Для внесения изменений создайте форк и последующий pull-реквест, и он будет рассмотрен.
Если обнаружите ошибку, связанную с работой кода, пожалуйста, создайте Issue в репозитории — это поможет оперативно её исправить.
Обращение к разработчикам Digiseller.
Сервис представляет собой сложную и запутанную структуру взаимосвязанных компаний, при этом технические изменения нередко вносятся мгновенно после обращения в чат администрации. Это создаёт впечатление, что именно администрация фактически выполняет функции разработчиков, хотя формально компания-владелец и компания-разработчик указаны разными.
Главная просьба — навести порядок в документации. В текущем виде она содержит множество несоответствий фактической работе API: ошибки в описании параметров, различающееся написание одних и тех же полей в рамках одного метода, неполные пояснения и явные следы ручного оформления каждой страницы.
Пора переходить на современные стандарты: OpenAPI, корректно описанные схемы и удобный Swagger-интерфейс. Это значительно упростит взаимодействие с API и снизит количество ошибок у интеграторов.
Запланировано
В будущих планах создание документации для удобного и корректного использования.
- Добавить все функции API
- Дополнительный пример использования в Python
- Добавить дополнительные отсутствующие функции
- Полная документация методов (см. MAPPING.md)
- Добавить оставшиеся функции (за исключением)
- Добавить возможность использования Proxy
Полезные ссылки
- Проект на PyPI
- Сайт Digiseller
- Документация API Digiseller
- Хостинг с хорошими ценами (Промокод: yacolo#58735)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file digiseller_api_python-3.1.2.tar.gz.
File metadata
- Download URL: digiseller_api_python-3.1.2.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de869765f711b8e02313d55be7a4e7baa958f87ae49488f644ed2bf84adc2c25
|
|
| MD5 |
6fb6b9e076035edf30cabc240cb85678
|
|
| BLAKE2b-256 |
1199e9f565ed41eb4bc5960a34accd3f1e25a301e18f7bfe58006ab6f1c4d53d
|
Provenance
The following attestation bundles were made for digiseller_api_python-3.1.2.tar.gz:
Publisher:
release_pypi.yml on Ernieleo/digiseller-api-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
digiseller_api_python-3.1.2.tar.gz -
Subject digest:
de869765f711b8e02313d55be7a4e7baa958f87ae49488f644ed2bf84adc2c25 - Sigstore transparency entry: 760627872
- Sigstore integration time:
-
Permalink:
Ernieleo/digiseller-api-python@de1efec943f9268b18504a7085a70a4f9eb0794a -
Branch / Tag:
refs/tags/v3.1.2 - Owner: https://github.com/Ernieleo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_pypi.yml@de1efec943f9268b18504a7085a70a4f9eb0794a -
Trigger Event:
release
-
Statement type:
File details
Details for the file digiseller_api_python-3.1.2-py3-none-any.whl.
File metadata
- Download URL: digiseller_api_python-3.1.2-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a6c658314f8b17656dce9a4492c193478b0c26345acd71ec75163d5a8b81714
|
|
| MD5 |
cc9e513c07adfea750cb863f6a086e5a
|
|
| BLAKE2b-256 |
627a734c8b1812dc94ec66dfdd721ab255d1ba98b07378f94faa68ff09c09397
|
Provenance
The following attestation bundles were made for digiseller_api_python-3.1.2-py3-none-any.whl:
Publisher:
release_pypi.yml on Ernieleo/digiseller-api-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
digiseller_api_python-3.1.2-py3-none-any.whl -
Subject digest:
1a6c658314f8b17656dce9a4492c193478b0c26345acd71ec75163d5a8b81714 - Sigstore transparency entry: 760627873
- Sigstore integration time:
-
Permalink:
Ernieleo/digiseller-api-python@de1efec943f9268b18504a7085a70a4f9eb0794a -
Branch / Tag:
refs/tags/v3.1.2 - Owner: https://github.com/Ernieleo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_pypi.yml@de1efec943f9268b18504a7085a70a4f9eb0794a -
Trigger Event:
release
-
Statement type: