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.26.tar.gz
(27.1 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.26.tar.gz.
File metadata
- Download URL: shadowob_sdk-1.1.26.tar.gz
- Upload date:
- Size: 27.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
518eac8c3fc4e7650747ada283a873c9c9e15e6f97bdb24bbf2565d0f64956e4
|
|
| MD5 |
d8b9d8145c40351c80dc2606157c1288
|
|
| BLAKE2b-256 |
f2ae4d6c89c54ed15ef8bfeb2df30b9c910be0cc07447b362977ae38ec97d7a5
|
File details
Details for the file shadowob_sdk-1.1.26-py3-none-any.whl.
File metadata
- Download URL: shadowob_sdk-1.1.26-py3-none-any.whl
- Upload date:
- Size: 22.4 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 |
75d40f0f97d27d60bc9976883bed9942a6b2b37e59a7b5064612cbe4a64b596f
|
|
| MD5 |
ad4f4fafdd2feb62ebd72b4903701291
|
|
| BLAKE2b-256 |
1c825eed123c68d5c8676ce5cec44c0ccfd47906b0d5c2ea4ddb2433f0d73f54
|