机器人
以下是 该项目 的介绍。
特性
支持多框架,一套代码多个平台
插件热更新,无需重新卸载安装
全局管理器,简单配置即可上手
协议
回调地址:
http://your.domain/app.php?frameId=10000&frameHost=127.0.0.1:1111&key=<frameKey>frameId不填默认 2500,frameBotId手动指定机器人号码,frameHost为HTTP转发回去的 Host
| frameId | 框架 | 平台 | 鉴权 | HTTP | WS |
|---|---|---|---|---|---|
| 2500 | 小米小爱 | 小爱音箱 | - | ✓ | ✗ |
| 10000 | MyPCQQ | 电脑 QQ | 白名单 IP | ✓ | ✗ |
| 15000 | OPQ | NTQQ | - | ✗ | ✓ |
| 20000 | 可爱猫 | 微信 (旧) | 密钥 | ✓ | ✗ |
| 25000 | 可爱猫 | 微信 (新) | 密钥 | ✓ | ✗ |
| 30000 | 飞书 | 飞书 | 密钥 | ✓ | ✗ |
| 40000 | 钉钉 | 钉钉 | 密钥 | ✓ | ✗ |
| 50000 | NOKNOK | NOKNOK | 密钥 | ✓ | ✗ |
| 60000 | LiteLoaderQQNT | 电脑 QQ | 密钥 | ✓ | ✗ |
| 70000 | QQ 机器人 | QQ 频道 | 密钥 | ✗ | ✓ |
| 75000 | QQ 机器人 | QQ 群 | 密钥 | ✗ | ✓ |
| 77500 | QQ 机器人 | QQ 群自定义 | 签名 | ✓ | ✗ |
| 80000 | 王者营地 | 王者营地 | - | ✓ | ✗ |
| 100000 | 抖音 | 抖音 | 密钥 | ✓ | ✗ |
| 米游社 | 密钥 | ✓ | ✗ | ||
| 手机 QQ | 密钥 | ✓ | ✓ |
回复
-表示不确定,且很大概率不行,小爱音箱只有文本
| frameType | 文本 | 图片 | at_msg | reply_msg | markdown_msg |
|---|---|---|---|---|---|
| MyPCQQ | ✓ | ✓ | ✓ | ✗ | ✗ |
| OPQ | ✓ | ✓ | ✓ | ✗ | ✗ |
| 可爱猫 | ✓ | 本地 | ✓ | ✗ | ✗ |
| 可爱猫 | ✓ | 本地 | ✓ | ✗ | ✗ |
| 飞书 | ✓ | ✗ | ✓ | ✗ | ✗ |
| 钉钉 | ✓ | ✗ | ✗ | ✗ | ✓ |
| NOKNOK 机器人 | ✓ | ✗ | ✓ | ✓ | ✓ |
| LiteLoaderQQNT | ✓ | ✓ | ✓ | ✓ | ✗ |
| QQ 频道 | ✓ | ✓ | ✓ | ✓ | ✗ |
| QQ 群 | ✓ | ✗ | ✓ | ✗ | ✗ |
| QQ 群自定义 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 王者营地 | ✓ | ✗ | ✓ | ✗ | ✗ |
| 米游社 | ✓ | ✓ | ✓ | ✓ | ✗ |
| 抖音 | ✓ | ✓ | ✓ | ✗ | ✗ |
配置
密钥
所有带 example. 前缀的都需要自行配置。里面的密钥换成自己的,然后去掉 example. 即可。
app/example.config 內的文件修改完以后复制一份到 app/config
app/database/example.app.sql.php
app/ext_ws/example.qq_guild_ws.js接收入口鉴权
回调地址携带 key 参数,优先使用 app/config/app.config.json 中的 frameKey,未配置时回退到 app/config/app.config.php 的 APP_KEY 白名单。
ws 网关脚本统一从 app/ext_ws/frame_key.js 读取,优先级:环境变量 BOT_FRAME_KEY > app/config/app.config.json 的 frameKey。
环境变量
所有密钥走环境变量,不入库,示例见 app/example.config/env.example(可作为部署底稿,复制后按需填充):
| 变量 | 说明 |
|---|---|
APP_REDIS_HOST/PASS/PORT | Redis 连接(默认 127.0.0.1:6379) |
BOT_FRAME_KEY | 接收入口鉴权 key(优先于 frameKey) |
BOT_POST_URL | 接收入口基础地址(默认 bot.91m.top) |
BOT_BASE_URL | 站点基础地址(图片缓存等拼接,默认 bot.91m.top) |
BOT_ID/NAME/TOKEN/SECRET | ws 网关机器人凭据(不配置时回退脚本内配置) |
DY_COOKIES/WEB_PROTECT/KEYS | 抖音桥接登录 Cookie 等(抖音必需) |
BRIDGE_HOST/PORT | 抖音桥接监听地址/端口(默认 127.0.0.1:18100) |
AUTH_* | 第三方 API 密钥(未设置时回退默认值) |
redis
数据缓存,关键词触发、统计都需要 立即下载。
frameHost
HTTP转发回去的 Host,默认为127.0.0.1:1111(app/config/app.config.php中配置)
如需外网访问,建议 服务器端防火墙、安全策略组 放通 8000-8100 端口。
frameGc
子频道/群过滤,逗号分隔多个,不填默认全部处理。
NOKNOK 和 QQ 频道 请填 子频道ID,如 123456,789012。
插件
安装其他插件可以参考 demo 插件的说明。
插件通过 git submodule 管理,克隆仓库后需要执行 git submodule update --init --recursive 拉取。建议插件使用 plugin_ 作为前缀,本地文件夹与插件名保持一致。
写在最后
环境密钥配置好以后需要
管理员向机器人发送功能初始化插件,每次增删插件也需要。
只有注册过的命令下次才会调用相关插件,不用每一句话都轮询所有插件了。
注意
文件、路径必须有读写权限,否则
缓存、发图相关功能受到影响。
如果有两个相似的命令 (比如 一言状态 和 一言 ),建议长的放短的前面,否则调用次数的统计可能会统计到先匹配到的关键词上。