前言·
其实早就想自己写一个了,但奈何实力不允许(虽说现在也不允许),早就听说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.id与member_openid,还有msg_id,有了msg_id才算被动回复,member_openid用来记录/bind的userId
新建一个py文件,用来存放函数