Shadow SDK — Python client for Shadow server REST API and Socket.IO real-time events
Project description
Shadow Python SDK
Python client for the Shadow server REST API and Socket.IO real-time events.
Installation
pip install shadowob-sdk
Quick Start
from shadowob_sdk import ShadowClient, ShadowSocket
# REST API
client = ShadowClient("https://shadowob.com", token="your-jwt-token")
me = client.get_me()
print(f"Logged in as {me['username']}")
# Send a message
msg = client.send_message("channel-id", "Hello from Python!")
print(f"Sent message: {msg['id']}")
# Real-time events
socket = ShadowSocket("https://shadowob.com", token="your-jwt-token")
socket.on("message:new", lambda msg: print(f"New message: {msg['content']}"))
socket.connect()
socket.join_channel("channel-id")
socket.wait() # Block until disconnected
Commerce Automation
from shadowob_sdk import ShadowClient
client = ShadowClient("https://shadowob.com", token="your-jwt-token")
# Buyer-facing product context includes product, shop, provider, delivery, refund,
# credit, and asset homepage links.
context = client.get_commerce_product_context("product-id")
# Preview an offer, then purchase with an idempotency key.
preview = client.get_commerce_offer_checkout_preview("offer-id")
if preview["nextAction"] == "purchase":
client.purchase_commerce_offer(
"offer-id",
idempotency_key="checkout-20260518-001",
)
# Paid files return a short-lived grant token for authorized downloads or previews.
opened = client.open_paid_file("workspace-file-id")
print(opened["viewerUrl"], opened.get("grantToken"))
# External provider apps use an OAuth access token for app-scoped entitlements.
app_client = ShadowClient("https://shadowob.com", token="oauth-access-token")
access = app_client.get_oauth_commerce_entitlement_access(
resource_id="oauth-app-id:premium",
)
if access["allowed"]:
app_client.redeem_oauth_commerce_entitlement(
resource_id="oauth-app-id:premium",
idempotency_key="provider-delivery-001",
)
API Reference
See the full documentation for complete API reference.
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
shadowob_sdk-1.1.36.tar.gz
(27.6 kB
view details)
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 shadowob_sdk-1.1.36.tar.gz.
File metadata
- Download URL: shadowob_sdk-1.1.36.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6daa3febab3119a590132114b7685bfb29f5b1bfe64c4c28179ac53a853bbfdd
|
|
| MD5 |
8296ade1a2da2b11eabb5a30980cae0d
|
|
| BLAKE2b-256 |
a5922d655db59f5fc4734b7e85d164e0da7903ff7bc12a479c86ddb40a3ad04f
|
File details
Details for the file shadowob_sdk-1.1.36-py3-none-any.whl.
File metadata
- Download URL: shadowob_sdk-1.1.36-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abfdabe12798e5713fdd51b6b0b71762987f160a427b82e160f631a04e90ce19
|
|
| MD5 |
bed4c278c4293bf20add4da7e5745135
|
|
| BLAKE2b-256 |
c289414fe2798dd167df4800059d60b95cf8892c90d5afaf124f0eb642c2ca62
|