使用Python+QQ官方SDK制作QQbot

注册账户&创建机器人

首先,要在QQ 开放平台注册一个开发账户,必须实名才可以创建机器人。

个人开发者默认只开放了频道内机器人的权限,没有群聊的权限!

在注册完之后可以在QQ 开放平台看到机器人的创建页面。

一般来说,审核通过很快速,通过审核之后就可以进行下一步了。

检查AppSecret&AppID

创建成功之后应该就可以在开发-开发设置 页找到关于机器人的信息。

QQ机器人管理端icon-default.png?t=O83Ahttps://q.qq.com/qqbot/#/developer/developer-setting

这里的AppSecret和AppID后续需要使用!AppSecret第一次需要手动生成并且需要记录!后续不可以在这里再次看见,只能重新生成。

准备服务器端

安装Python依赖环境

pip install qq-botpy

执行以上命令,可以考虑使用镜像加速下载。

编写代码

根据qqbotpy文档的快速示例,我们应该使用以下代码尝试链接到你的机器人:

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={appid}, token={token})

官方文档错误

这里我们会发现,他要求我们提供了token,而不是AppSecret。但是,我们会发现按照官方的示例更改为自己的id和token后报错了。见官方Github仓库Issue165:在客户端启动时报错 · Issue #165 · tencent-connect/botpy (github.com)

无法理解为什么不更新文档,鉴权方式变更文档里居然提都不提。

TypeError: start() got an unexpected keyword argument 'token'

对我个人当前来说,我把token改成secret之后就可以正常运行了。

直接把原先的client.run一行改为下文就可以正常运行了。把这里的appid和appsecret改成你自己的对应信息即可!

client.run(appid="appid", secret='appsecret')

如果一切正常,应该有类似以下输出:

[INFO]	(client.py:162)_bot_login	[botpy] 登录机器人账号中...
[INFO]	(robot.py:65)update_access_token	[botpy] access_token expires_in 1973
[INFO]	(client.py:181)_bot_init	[botpy] 程序启动...
[INFO]	(connection.py:60)multi_run	[botpy] 最大并发连接数: 1, 启动会话数: 1
[INFO]	(client.py:242)bot_connect	[botpy] 会话启动中...
[INFO]	(gateway.py:115)ws_connect	[botpy] 启动中...
[INFO]	(gateway.py:142)ws_identify	[botpy] 鉴权中...
[INFO]	(gateway.py:85)on_message	[botpy] 机器人「XX-测试中」启动成功!
[INFO]	(gateway.py:223)_send_heart	[botpy] 心跳维持启动...

恭喜你!到这里你已经成功编写了一个简单的QQ机器人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值