0.前言嗯 好久没写博客了
实在是没啥可写
博主入坑鸣潮已有段时间 乐在其中
逛论坛时总觉得群机器人生成的图比小程序好看
可博主深度社恐又不想加群
于是便有了本文
1.在QQ开放平台创建机器人首先使用面对面建群创建一个只有自己的群
(自已为群主或管理员且群成员不超过20的群亦可)
打开QQ开放平台注册并登录账号
然后向下翻 找到创建机器人 填写相关信息完成创建
随后在沙箱配置中选择即将添加机器人的群
使用该网页查询自己的IP并添加到开发管理的IP白名单中
之后在移动端QQ打开该群 进入右上角菜单选择群机器人 再切换到其他 便能将刚刚创建的机器人添加到群中
2.安装nonebot在电脑上安装python(版本大于等于3.9) git
打开终端 执行以下命令以安装pipx
12python -m pip install --user pipxpython -m pipx ensurepath
然后执行以下命令以安装nonebot
1pipx install nb-cli
3.使用nonebot创建机器人在想要创建机器人的目录打开终端 运行以下命令
1nb create
随后进入创建项目的流程
1.模板选择bootstrap
2.名称随意
3.适配器选择QQ(QQ官方机器人) (使用上下方向键移动 空格选定 回车提交)
4.驱动器选择FastAPI HTTPX webscokets
5.后两项都选择是
6.内置插件选择echo
提示完成则创建成功
4.连接至官方机器人并测试本部分内容参考文章
在部署机器人的目录打开终端 运行以下命令来安装适配器
1pip install nonebot-adapter-qq
打开目录中的.env.prod文件 在末尾粘贴如下代码 其中的id token secret字段请自行替换为QQ开放平台中所提供的值
12345678910111213QQ_BOTS='[ { "id": "xxx", "token": "xxx", "secret": "xxx", "intent": { "c2c_group_at_messages": true }, "use_websocket": true }]'
在目录中创建文件bot.py 写入如下代码
12345678910111213141516import nonebotfrom nonebot.adapters.qq import Adapter as QQAdapter nonebot.init() driver = nonebot.get_driver()driver.register_adapter(QQAdapter) nonebot.load_builtin_plugins('echo', 'single_session') nonebot.load_from_toml("pyproject.toml") if __name__ == "__main__": nonebot.run()
在本目录打开终端 执行命令
1nb run --reload
观察提示 若有形如 QQ | Bot {id} connected的输出说明连接成功
可以在QQ群中发送格式为”@机器人 /echo 任意内容”的消息来测试
机器人回复相同内容则测试通过
5.安装并启动GScore打开终端 执行如下命令来安装uv(用于安装与启动GScore)
1pip install uv
然后使用cd命令切换至本地部署机器人的目录的上一级 执行如下命令来安装GScore及其依赖
123git clone https://github.com/Genshin-bots/gsuid_core.git --depth=1 --single-branchuv syncuv run python -m ensurepip
安装完成后cd至gsuid_core 运行如下命令来启动它
1uv run core
6.通过网页控制台安装插件在运行上面的命令后找到WebConsole挂载成功的输出 通过后面的链接访问网页控制台
默认的用户及密码均为root
登录后进入插件管理下载所需插件
(热门游戏的群机器人插件都在这了)
同时挂载到公网的相关设置也可以通过网页控制台进行调整
将IP改为0.0.0.0并放行服务器端口(修改IP的配置文件为gsuid_core/data/config.json)
之后重启GScore
7.将GScore连接至nonebot在已部署机器人的目录中打开终端并运行如下命令
1nb plugin install nonebot-plugin-genshinuid
随后使用nb run启动机器人即可
大功告成按照所安装插件对应的命令就可以随意地使用群机器人了!!!
写得还是比较粗糙啊 凑合能看吧
要搞到公网估计得在服务器上搞吧
对了 开放平台那个密钥好像还有时间限制
果然真是自己玩啊