LOADING

加载过慢请开启缓存 浏览器默认开启

qq官方机器人开发学习记录

前言·

其实早就想自己写一个了,但奈何实力不允许(虽说现在也不允许),早就听说qq官方有给机器人框架了,写一个来玩玩
我并不是什么专业写代码的,只是业余爱好摆弄摆弄,分享而已

历程·

10/5·

了解到官方只是给了个接口,后端全部得自己写,找网上现成的机器人框架,太复杂又看不懂。上网查询途中,发现官方有在github上给sdk,立马git clone了一下,但还是看不懂(

根据官方的文档,创建一个机器人的后端很简单,首先要安装qq-botpy:

pip install qq-botpy

然后直接新建一个py文件,例如bot.py,输入一下内容:

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})

这样一个机器人框架(也许?)就写好了
其实我更想这样写:

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")

if __name__ == "__main__":
    intents = botpy.Intents(public_guild_messages=True) 
    client = MyClient(intents=intents)
    client.run(appid={appid}, token={token})

我想写一个某游戏的科技bot,但还得获取聊天信息

10/7·

开发还算顺利,byd的腾讯文档里写的全是给qq频道的,给群聊的就三四个接口,总比没有好,至少目的达成了

qq的机器人不能主动发消息,只能被动发消息,但一般要bot也是我们主动@,根据官方文档,我们需要先订阅事件:

intents = botpy.Intents(public_messages=True)

接着再上面写监听事件的函数,事件为被@

async def on_group_at_message_create(self, message: GroupMessage)

当机器人被@时,我们可以获取message的内容,根据官方的文档,这里我们只需要用到message.idmember_openid,还有msg_id,有了msg_id才算被动回复,member_openid用来记录/binduserId

新建一个py文件,用来存放函数