Skip to main content

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

Project description

Oopzbot SDK

面向 Oopz 机器人开发与生态的现代异步 Python SDK。

License Python Package Async Typing OneBot

异步优先 · 事件驱动 · 类型友好 · 消息 / 媒体 / 语音

快速开始 · 功能特性 · 文档 · 示例 · 贡献


这是什么?

oopz-sdk 是一个面向 Oopz 平台 的 Python SDK,用于编写机器人、监听事件、发送消息、上传媒体、调用平台 API,并逐步提供 OneBot v12 生态适配能力。

[!IMPORTANT] 项目仍处于早期开发阶段,接口和适配能力可能继续调整。欢迎参与测试、反馈和贡献。

✨ 功能特性

  • Bot 入口简单:通过 OopzBot 完成连接、事件监听、消息回复和 Service 调用。
  • 异步优先:基于 asyncio,适合长期运行的机器人和服务端应用。
  • 类型友好:核心模型基于 Pydantic v2,便于补全、校验和测试。
  • 事件驱动:支持消息、私信、撤回、编辑、频道变化、语音进出、身份组变化等事件。
  • 消息与媒体:支持文本、图片、私信、引用回复、消息段解析和文件上传。
  • Service 分层:提供消息、媒体、域、频道、用户、管理、语音等能力入口。
  • 生态适配:OneBot v11和v12 适配正在不断完善~

📦 安装

pip install oopz-sdk

从源码安装:

git clone https://github.com/tangqingfeng7/Oopzbot-SDK.git
cd Oopzbot-SDK
pip install -e .

开发环境:

pip install -e ".[dev]"
pytest

需要语音能力时,还需要安装 Playwright Chromium:

python -m playwright install chromium

需要通过账号密码自动登录时,也使用同一个 Chromium 运行时。

🚀 快速开始

创建 bot.py

import asyncio

from oopz_sdk import OopzBot, OopzConfig


config = OopzConfig.from_env()
bot = OopzBot(config)


@bot.on_ready
async def on_ready(ctx):
    print("[READY] connected")


@bot.on_message
async def on_message(message, ctx):
    if message.text.strip() == "ping":
        await ctx.reply("pong")


asyncio.run(bot.run())

设置环境变量后运行:

export OOPZ_DEVICE_ID="你的设备 ID"
export OOPZ_PERSON_UID="你的账号 UID"
export OOPZ_JWT_TOKEN="你的 JWT"
export OOPZ_PRIVATE_KEY=$'-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----'
python bot.py

Windows PowerShell:

$env:OOPZ_DEVICE_ID="你的设备 ID"
$env:OOPZ_PERSON_UID="你的账号 UID"
$env:OOPZ_JWT_TOKEN="你的 JWT"
$env:OOPZ_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----`n...`n-----END RSA PRIVATE KEY-----"
python bot.py

也可以用 OOPZ 账号密码自动登录提取凭据,详见 账号密码登录

import asyncio

from oopz_sdk import OopzBot, OopzConfig


async def main() -> None:
    config = await OopzConfig.from_password_env()
    bot = OopzBot(config)

    @bot.on_message
    async def on_message(message, ctx):
        if message.text.strip() == "ping":
            await ctx.reply("pong")

    await bot.run()


asyncio.run(main())

启动前设置 OOPZ_LOGIN_PHONEOOPZ_LOGIN_PASSWORD;需要人工验证时再设置 OOPZ_LOGIN_HEADFUL=1(也接受 true / yes / on)。

在机器人能收到的频道里发送:

ping

机器人会回复:

pong

更多用法请查看文档。

许可

Oopzbot-SDK 采用 MIT 许可证进行开源

免责声明

本项目由社区开发与维护,旨在为 Oopz 机器人开发、自动化集成和协议适配提供更方便的 Python 接口。使用本项目时请遵守 Oopz 平台相关规则,并妥善保管账号凭证、JWT、私钥等敏感信息。

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.10.0.tar.gz (130.9 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.10.0-py3-none-any.whl (136.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for oopz_sdk-0.10.0.tar.gz
Algorithm Hash digest
SHA256 1c08549b6c2c801243d0c1062d0232d5305aebe38d157c6d71680e61e5c2b520
MD5 563ba0a8bfa0519d5070ceabfc7e662f
BLAKE2b-256 fd15ee23852c1a5808af0ee1c7b9b2dab04efe24b7a3172717cf94d04e74f522

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for oopz_sdk-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68fae4bfcb4b8816f71b309f3413f26fb9574bdae05323ecd0fdfd82f5e33453
MD5 1bf7c1b36f3368587ee1e8c967139858
BLAKE2b-256 dca2c415a02b2ee00148d9e73a8c4261d6ba17ab0f446dd0b1c2133f32ea48ec

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