Skip to main content

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


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.49.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowob_sdk-1.1.49-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file shadowob_sdk-1.1.49.tar.gz.

File metadata

  • Download URL: shadowob_sdk-1.1.49.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for shadowob_sdk-1.1.49.tar.gz
Algorithm Hash digest
SHA256 c0d76e52a3dc30574f9fb05e655d21a443cef536a6223101a3b54df13a3643a4
MD5 1b6f0268aec632b409c05edbf5211980
BLAKE2b-256 5e62c9d790304ed6284c64ef9ed4ab17c43fabd8adb79f39b28264af7fa7cf44

See more details on using hashes here.

File details

Details for the file shadowob_sdk-1.1.49-py3-none-any.whl.

File metadata

  • Download URL: shadowob_sdk-1.1.49-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

Hashes for shadowob_sdk-1.1.49-py3-none-any.whl
Algorithm Hash digest
SHA256 1f2fffda7759c774f65cc8f720434837bca85067c149898cb085b4fecd97a5e5
MD5 6aa38dc09d1ef1fbc5108eabf4c5b03a
BLAKE2b-256 3802b11dbd775ba157661123563a146c1bcf99f23f2b49f02d4b5ae8b8aaa609

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page