本文档仅用于灰度测试,接口可能变动,请随时关注群内通知。
# 解压灰度包
unzip dist-5.0.0-dev.0.zip
cd bot-sdk
# 安装依赖(仅需一次)
pip install -r requirements.txt
# 启动
python -m src \
-u ws://localhost:3001 \
-t <你的token> \
-p napcat \
--plugin-dir ./pluginsIM.py 是用户面向的对象层,已帮你把协议细节封装成直观类:
| 类 | 作用 | 常用示例 |
|---|---|---|
User | 任何用户 | user.send_text("hello") |
Group | 任何群 | group.send_text("@all 开工") |
Message | 单条消息 | msg.reply_text("收到") |
MessageContent | 富文本容器 | 见下方“发富文本” |
这些对象只在事件回调里拿到,不要自己 new。
plugins/demo.py
fromsrc.plugins_systemimportPluginfromsrcimportEvent# 事件对象classDemoPlugin(Plugin):
name="demo"version="0.1"asyncdefon_load(self):
# 注册事件:群消息self.register_handler("message.group", self.on_group_msg)
asyncdefon_group_msg(self, event: Event):
data=event.datatext: str=data["message"][0]["data"]["text"]
iftext=="你好":
# 拿到群对象fromsrcimportIMClientclient=IMClient.get_current()
group=awaitclient.get_group(data["group_id"])
awaitgroup.send_text("你好,灰度测试!")把 demo.py 丢进启动时 --plugin-dir 指定的文件夹即可,无需重启会自动加载。
| 场景 | 代码 |
|---|---|
| 回复文本 | await msg.reply_text("ok") |
| 发富文本 | await user.send_message(MessageContent([TextNode("文字"), ImageNode("http://i.jpg")])) |
| 获取发送者 | sender = await msg.get_sender() |
| 取好友列表 | friends = await client.get_friends() |
| 撤回自己消息 | await msg.recall() |
打开
logs/bot.log看实时日志。插件里任意地方打印:
self.logger.info("任意信息")
改完代码保存即热重载(灰度版已开 dev 模式)。
- 仅支持
napcat协议。 - 灰度阶段 API 可能 breaking,请锁定版本号。
- 可以直接实例化
User/Group使用