Skip to main content

botpy 是基于机器人开放平台API 实现的机器人框架,目的提供一个易使用、开发效率高的开发框架。

PyPI BK Pipelines Status

准备工作

安装

pip install qq-botpy

更新包的话需要添加 --upgrade 注:需要python3.7+

使用

需要使用的地方import botpy

import botpy

兼容提示

原机器人的老版本qq-bot仍然可以使用,但新接口的支持上会逐渐暂停,此次升级不会影响线上使用的机器人

使用方式

快速入门

步骤1

通过继承实现bot.Client, 实现自己的机器人Client

步骤2

实现机器人相关事件的处理方法,如 on_at_message_create, 详细的事件监听列表,请参考 事件监听.md

如下,是定义机器人被@的后自动回复:

import botpy
from botpy.types.message import Message

class MyClient(botpy.Client):
    async def on_ready(self):
        print(f"robot 「{self.robot.name}」 on_ready!")

    async def on_at_message_create(self, message: Message):
        await message.reply(content=f"机器人{self.robot.name}收到你的@消息了: {message.content}")

注意:每个事件会下发具体的数据对象,如`message`相关事件是`message.Message`的对象 (部分事件透传了后台数据,暂未实现对象缓存)

步骤3

设置机器人需要监听的事件通道,并启动client

import botpy
from botpy.types.message import Message

class MyClient(botpy.Client):
    async def on_at_message_create(self, message: Message):
        await self.api.post_message(channel_id=message.channel_id, content="content")

intents = botpy.Intents(public_guild_messages=True)
client = MyClient(intents=intents)
client.run(appid="12345", token="xxxx")

备注

也可以通过预设置的类型,设置需要监听的事件通道

import botpy

intents = botpy.Intents.none()
intents.public_guild_messages=True

使用API

如果要使用api方法,可以参考如下方式:

import botpy
from botpy.types.message import Message

class MyClient(botpy.Client):
    async def on_at_message_create(self, message: Message):
        await self.api.post_message(channel_id=message.channel_id, content="content")

示例机器人

``examples` <./examples/>`_ 目录下存放示例机器人,具体使用可参考``Readme.md` <./examples/README.md>`_

examples/
.
├── README.md
├── config.example.yaml          # 示例配置文件(需要修改为config.yaml)
├── demo_announce.py             # 机器人公告API使用示例
├── demo_api_permission.py       # 机器人授权查询API使用示例
├── demo_at_reply.py             # 机器人at被动回复async示例
├── demo_at_reply_ark.py         # 机器人at被动回复ark消息示例
├── demo_at_reply_embed.py       # 机器人at被动回复embed消息示例
├── demo_at_reply_command.py     # 机器人at被动使用Command指令装饰器回复消息示例
├── demo_at_reply_file_data.py   # 机器人at被动回复本地图片消息示例
├── demo_at_reply_keyboard.py    # 机器人at被动回复md带内嵌键盘的示例
├── demo_at_reply_markdown.py    # 机器人at被动回复md消息示例
├── demo_at_reply_reference.py   # 机器人at被动回复消息引用示例
├── demo_dms_reply.py            # 机器人私信被动回复示例
├── demo_get_reaction_users.py   # 机器人获取表情表态成员列表示例
├── demo_guild_member_event.py   # 机器人频道成员变化事件示例
├── demo_interaction.py          # 机器人互动事件示例(未启用)
├── demo_pins_message.py         # 机器人消息置顶示例
├── demo_recall.py               # 机器人消息撤回示例
├── demo_schedule.py             # 机器人日程相关示例

更多功能

更多功能请参考: [https://github.com/tencent-connect/botpy]

Metadata

Release files for b-botpy 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for b-botpy 1.0.2
File Size Uploaded Provenance
b_botpy-1.0.2.tar.gz 44.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for b-botpy 1.0.2
File Interpreter ABI Platform
b_botpy-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 99.0 kB

Release files / b_botpy-1.0.2.tar.gz

Download URL b_botpy-1.0.2.tar.gz
Size 44.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f1e14afc1029db88171a32a6909569aa233c198c82115cbdf9ca10a7e5f7e7b9
BLAKE2b-256 checksum
How to use checksums
8800251b62a61a6a55226aecb4e6ab23a00d3292a4928541a547a5d567ca09ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / b_botpy-1.0.2-py3-none-any.whl

Download URL b_botpy-1.0.2-py3-none-any.whl
Size 54.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
860630e68fda16c54ae8ccb905d6367a5165a477b4cfc16d24db97bb71745240
BLAKE2b-256 checksum
How to use checksums
5692d5665233778430de83f54d73ecc57f58858912dcfe5ec4140b6c780cdcfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for b-botpy 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page