本文最后更新于:2023年12月15日 晚上
大家好,今天教大家一期,使用nonebot的qq频道适配器去对接官方的频道bot,你需要准备以下工具
- 一台电脑
- python环境
- 去官方申请的key
- vscode
(其他代码编辑器也行)
申请官方key
登录QQ开发平台,没有账号可以去注册一个号,我这边已经注册好了
我这里已经申请到key了,你申请之后官方会给你三个票据
bot_app_id |
用于识别一个机器人的 id |
bot_secret |
用于在 oauth 场景进行请求签名的密钥 |
bot_token |
机器人token,用于以机器人身份调用 openapi,格式为 appid.{random_str} |
这三个东西非常重要 接下来我们去下载nonebot封装的适配器
下载适配器
手动下载
打开powershell
输入如下命令
1 2
| nb adapter install nonebot-adapter-qqguild nb driver install nonebot2[aiohttp]
|
安装适配器后 打开你的插件目录 找到pyproject.toml
把adapters
适配器里添加qq频道适配器
1 2 3
| adapters = [ { name = "QQ 频道", module_name = "nonebot.adapters.qqguild" } ]
|
再找到.env
文件
把DRIVER=~fastapi
改成
1 2
| ENVIRONMENT=dev DRIVER=~aiohttp
|
懒人安装
在创建项目的时候 把驱动器改成aiohttp 同时适配器选择qq频道
使用
完事之后,打开你的env.dev.
输入如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13
| QQGUILD_BOTS=' [ { "id": "xxx", #这里是bot_id "token": "xxx", # 这里是 bot_secret "secret": "xxx", # 这里是bot_token "intent": { "guild_messages": true, "at_messages": false } } ] '
|
保存
在当前目录下启动nb
1 2
| 07-20 19:59:42 [INFO] nonebot | QQ Guild | Bot ********* connected 07-20 19:59:42 [SUCCESS] nonebot | QQ Guild ********** | [READY]: {'version': 1, 'session_id': '********************', 'user': {'id': **********, 'username': '*****', 'avatar': None, 'bot': True, 'union_openid': None, 'union_user_account': None}, 'shard': (0, 1)}
|
如果出现上述东西 说明已连接成功 可以自由收发消息了
插件示例
这里只展示一些基础写法,可以参考一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from nonebot import on_fullmatch from nonebot.adapters.qqguild import MessageEvent, MessageSegment
a = on_fullmatch("/获取用户id")
@a.handle() async def _(event: MessageEvent): await a.finish(f"你的用户id为:{event.get_user_id()}")
b = on_fullmatch("/你好")
@b.handle() async def _(event: MessageEvent): await b.finish(MessageSegment.reference(event.id)+"你也好呀!")
|