QQ机器人
步骤
- 登录QQ开放平台
- 应用管理中的机器人页面创建机器人,填写相关信息
- 进入机器人管理页面,在管理-开发管理中可以得到appId等信息
- 在开发-开发管理-消息URL配置中,配置你可能发送图片的域名地址(可选,不配置有可能收不到图片)
- 在开发-回调配置中,配置请求地址为:
域名/api/{instanceName}/receive
,验证成功后,全选单聊事件、群聊事件、互动事件,保存配置 - 根据配置信息,按照下方的代码创建实例或者在可视化页面配置
注意,QQ机器人在未上线之前,只能测试账号和群使用。测试正常后需要在QQ后台上线。 在测试环境中(pnpm dev 或者手动设置了process.env.NODE_ENV环境变量为development),默认的apiBase为QQ的沙箱地址
https://sandbox.api.sgroup.qq.com
,生产环境中(Docker运行默认为生产环境),默认使用QQ的正式地址https://api.sgroup.qq.com
。因此如果你的机器人尚未发布,且使用Docker运行,要手动把apiBase设置为沙箱地址。同理如果在测试环境中,想使用QQ正式地址,也需要手动设置。
支持的消息类型
- 文本消息
- 图片消息
- 文件消息
- 音频消息
- 富文本消息
- 文章卡片
- 位置信息
- 音乐卡片
- 联系人卡片
使用代码配置
typescript
const agent = new PPAgent({
sources: [
{
name: "qq",
options: {
instanceName: "qq-bot",
appId: "你的机器人App ID",
appSecret: "你的机器人App Secret",
// apiBase: "https://api.sgroup.qq.com", // 可选,API地址,注意沙箱环境为https://sandbox.api.sgroup.qq.com
// tokenBase: "https://bots.qq.com", // 可选,用于获取token的API域名
me: {
userId: "机器人的openid",
userName: "机器人名称",
nickName: "机器人昵称",
},
// audioEncodeRate: 32000, // 可选,音频编码的码率
// audioDecodeRate: 32000, // 可选,音频解码的码率
// canUseMarkdown: false, // 可选,是否启用Markdown功能,必须具备markdown权限
// messageIdCacheHourPeriod: 20, // 可选,消息ID缓存的有效期(小时)
}
}
],
bots: [...], // 机器人配置
agents: [...], // 智能体配置
});
服务器运行请参考 install_code.md 文件。
流式回复支持
QQ机器人不支持流式卡片方式回复。
注意事项
QQ机器人默认不支持Markdown格式,如果你的机器人获邀使用了Markdown功能,才能设置
canUseMarkdown
为true
。沙箱环境和正式环境使用不同的
apiBase
,如果你的机器人是沙箱环境,且当前是正式环境运行(Docker运行的默认值),需要手动指定apiBase
为https://sandbox.api.sgroup.qq.com
。如果你遇到语音消息语速不正常,可以尝试调整
audioEncodeRate
和audioDecodeRate
参数。QQ机器人不支持获取用户列表接口,所以无法获取好友列表。