Skip to main content

Oopz 平台 Python SDK,提供 HTTP API、文件上传与 WebSocket 事件能力。

Project description

Oopz SDK

Oopz 平台的 Python SDK,封装了 HTTP API、文件上传和 WebSocket 事件订阅,方便快速构建机器人或集成工具。

  • 支持 Python 3.10 / 3.11 / 3.12 / 3.13
  • 统一的异步接口(asyncio + aiohttp
  • 基于 pydantic v2 的响应模型
  • WebSocket 事件分发 + 装饰器式注册

安装

pip install oopz-sdk

准备凭证

调用接口前需要准备:

  • device_id:设备 ID
  • person_uid:机器人所属账号 UID
  • jwt_token:登录态 JWT
  • private_key:RSA 私钥(PEM 格式),用于请求签名

凭证均通过 OopzConfig 传入。除上述必填项外,OopzConfig 还支持若干可选参数,例如:

  • ignore_self_messages:WebSocket 事件中是否忽略自己发出的消息(默认开启,避免回声死循环)
  • auto_recall_enabled / auto_recall_delay:发消息后自动撤回
  • use_announcement_style:默认以公告样式发消息

发送一条频道消息

import asyncio

from oopz_sdk import OopzConfig, OopzRESTClient


async def main() -> None:
    config = OopzConfig(
        device_id="你的设备ID",
        person_uid="你的用户UID",
        jwt_token="你的JWT Token",
        private_key="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",
    )

    async with OopzRESTClient(config) as client:
        result = await client.messages.send_message(
            "Hello Oopz!",
            area="你的域ID",
            channel="你的频道ID",
        )
        print("message_id:", result.message_id)


asyncio.run(main())

async with OopzRESTClient(...) 会在退出时统一关闭底层 HTTP 会话。 不要对子 service(client.messages / client.media / ...)单独使用 async with, 它们共享同一个连接,应由 OopzRESTClientOopzBot 统一管理生命周期。

监听消息并自动回复

import asyncio

from oopz_sdk import OopzBot, OopzConfig


async def main() -> None:
    bot = OopzBot(OopzConfig(
        device_id="...",
        person_uid="...",
        jwt_token="...",
        private_key="...",
    ))

    @bot.on_message
    async def on_message(message, ctx) -> None:
        if (message.content or "").strip().lower() == "ping":
            await ctx.reply("pong")

    try:
        await bot.run()
    finally:
        await bot.stop()


asyncio.run(main())

更多示例见 examples/ 目录:

  • examples/send_message.py:最小发送消息示例
  • examples/reply_bot.py:基于 OopzBot 的事件驱动示例
  • examples/upload_private_image.py:上传图片并通过私信发送

主要入口

名称 说明
OopzConfig SDK 配置,持有凭证和可选运行时参数
OopzRESTClient REST 总入口,按领域挂载各 service
OopzBot 高阶入口,组合 REST 与 WebSocket,提供事件注册装饰器
OopzWSClient 纯 WebSocket 客户端,供需要自行处理事件分发的场景使用
Signer 请求签名工具,便于自定义传输层时复用

REST / Bot 上挂载的 service:

属性 说明
messages Message 频道消息 / 私信 / 撤回 / 富文本片段
media Media 文件上传(图片、附件等)
areas AreaService 域(群/服务器)信息与成员分页
channels Channel 频道信息与语音频道 enter/leave
members Member 成员信息查询
moderation Moderation 禁言 / 解禁 / 踢人 / 拉黑
voice Voice 语音频道加入与推流(需浏览器后端,见 examples

许可证

MIT License,详见仓库根目录 LICENSE 文件。

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

oopz_sdk-0.7.1.tar.gz (62.5 kB view details)

Uploaded Source

Built Distribution

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

oopz_sdk-0.7.1-py3-none-any.whl (67.0 kB view details)

Uploaded Python 3

File details

Details for the file oopz_sdk-0.7.1.tar.gz.

File metadata

  • Download URL: oopz_sdk-0.7.1.tar.gz
  • Upload date:
  • Size: 62.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for oopz_sdk-0.7.1.tar.gz
Algorithm Hash digest
SHA256 dd91e8546aa572c9963d87e385f1e9a2e39a0172d6e3fbd47cac6ed02b8a8aa0
MD5 c02ff37da8dee57da3089fdc7f992515
BLAKE2b-256 19c1b4e6e87b74d7bc546958a5e5fb96df95d53f22ccf9da186a91819b534b49

See more details on using hashes here.

File details

Details for the file oopz_sdk-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: oopz_sdk-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 67.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for oopz_sdk-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f16a9324d22cb7b4da7b754aed018b801ce29545483098b8a742468e6f3fd420
MD5 0022134c3e9dfb32da58c9f9afa22335
BLAKE2b-256 ad0293fff8f80bf482de7451c0980598b8454c064eaa725f61f315b8146948ee

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