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",
)
# 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.15.tar.gz
(26.0 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.15.tar.gz.
File metadata
- Download URL: shadowob_sdk-1.1.15.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04f0d775ebc0e86b1c7e211e1da867a5e3a94f66ed3d4991a7e377198b11eed1
|
|
| MD5 |
8646256cd5c4b6072665c92d658f00ef
|
|
| BLAKE2b-256 |
5088f2b289c8b5dcc3da224b22afe8cfa3b6c8c737b4746246b498b6f165b3d4
|
File details
Details for the file shadowob_sdk-1.1.15-py3-none-any.whl.
File metadata
- Download URL: shadowob_sdk-1.1.15-py3-none-any.whl
- Upload date:
- Size: 21.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 |
21c174d9d2e9463c7df2c429b518953fdb9bdc7e424a30f1749ec05be839a9a2
|
|
| MD5 |
7dd3a54bff1bf26ee02b4ea56a499ca5
|
|
| BLAKE2b-256 |
63300c3cfcafb9b29efc6e66f54119a81bdad696d8bdca57d7c7d012c35be0f7
|