注册 QQ 开放平台账号
QQ 开放平台是腾讯应用综合开放类平台,包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理,也就是说你注册了QQ 开放平台,你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。
如何注册 QQ 开放平台账号?点击首页右上角【立即注册】
注意主体的选择,当然无论是企业还是个人,都是可以开发 QQ 小程序 或者 QQ 机器人 的,但是如果您是个人主体的话,那么你的权限将有所局限,因为部分服务权限是需要企业主体的。
企业主体入驻开发者默认支持频道、群场景开发能力;个人主体入驻开发者默认仅支持频道场景开发能力。除默认开通的能力外,后续其他接口能力申请上,企业开发者与个人开发者也存在差异。
温馨提示:姓名和身份证号码务必与手机号码对应运营商实名登记的信息一致,否则会提示错误。
创建 QQ 机器人
注册完成后登陆开放平台!在机器人分栏点击【创建机器人】
填写 QQ 机器人资料信息(名称、头像、介绍)
QQ 机器人管理端后台
资料提交成功后,即会生成 appid,点击对应的应用即可跳转管理端。
机器人类型 和 测试频道 / 群 配置
机器人类型 包含 私域机器人或者 公域机器人。当然公域机器人对于服务器的要求过高,我们这边也可以选择私域机器人进行开发。特别注意在选择沙箱测试频道的时候,你必须提前创建个沙箱测试频道,必须<20人的频道。但是选择沙箱测试 QQ 群则需要您是企业资质。
沙箱频道仅可设置当前用户为频道主/管理员的频道、沙箱群仅可设置当前用户为群主/群管理员的群,且沙箱频道成员、沙箱群成员不可大于20人。
在沙箱配置页面不同类型开发者支持开发不同场景机器人功能
建议开发者根据实际的需要,选择在不同场景开发机器人,完成对应场景的沙箱环境配置。配置沙箱后,开发者可在「功能配置」、「使用范围与人员」页面解锁相应场景的配置能力。
认证身份 | QQ频道 | QQ群 | 消息列表单聊 |
---|---|---|---|
企业开发者 | ✅ | ✅ | 申请后可开发 |
个人开发者 | ✅ | 暂不开放 | 暂不开放 |
配置沙箱 QQ 群 / 频道,需要先在QQ客户端创建符合沙箱要求的QQ群/QQ频道。在频道场景,机器人仍然保留「公域」/「私域」机器人的区分,设置为公域机器人保存确认后不可切换为私域机器人,但在「使用范围与人员」可设置公域机器人的允许添加范围:“全部用户可添加”/“仅白名单用户可添加”。配置沙箱频道/群后,机器人会出现在沙箱频道/沙箱群的机器人列表当中。
查看 QQ 机器人设置
Token 和 AppSecret
请妥善保管 QQ 机器人令牌 Token(用于以机器人身份调用 openapi) 和 机器人密钥 AppSecret (用于在 oauth 场景进行请求签名的密钥)
消息 URL 配置
机器人发送的消息中包含的 URL 必须先在这里设置,消息才可以下发生效。域名需经过ICP备案,新备案域名 24 小时后才可以配置,请下载校验文件,并将文件放置在域名根目录下,并确保可访问该文件。
频道用户意见反馈
为了帮助开发者获取 C 端用户对于机器人的评价与反馈,平台在频道场景为开发者接入了"兔小巢反馈空间",开发者可以通过创建产品反馈空间。
频道用户意见反馈: 点击进入登陆后,根据提示创建产品,将会获得一个兔小巢反馈空间,C 端用户所填写的机器人反馈将同步至此空间,开发者以后可登陆此空间查看用户反馈。
产品 ID 填写: 需要在此处填写兔小巢反馈空间的产品 ID,C 端用户的机器人反馈才可同步至此处,详细获取路径如开发者端提示:设置 > 产品设置 > 产品 ID。
QQ 机器人 SDK
SDK | 链接地址 |
---|---|
Node.Js SDK 文档 | https://bot.q.qq.com/wiki/develop/nodesdk/ |
Python SDK 文档 | https://bot.q.qq.com/wiki/develop/pythonsdk/ |
GoLang SDK 文档 | https://bot.q.qq.com/wiki/develop/gosdk/ |
安装 QQ 机器人 Node.Js SDK
npm i qq-guild-bot
# 或者使用yarn
yarn add qq-guild-bot
# 国内安装可以使用腾讯源
npm i qq-guild-bot --registry=https://mirrors.tencent.com/npm/
intents 可选值举例:[‘GUILDS’, ‘GUILD_MEMBERS’, ‘GUILD_MESSAGES’,‘GUILD_MESSAGE_REACTIONS’,‘DIRECT_MESSAGE’, ‘INTERACTION’,‘MESSAGE_AUDIT’,‘FORUMS_EVENT’,‘AUDIO_ACTION’, ‘PUBLIC_GUILD_MESSAGES’]
事件类型的订阅,是有权限控制的,除了 GUILDS,PUBLIC_GUILD_MESSAGES,DIRECT_MESSAGE,GUILD_MEMBERS 事件是基础的事件,默认有权限订阅之外,其他的特殊事件,都需要经过申请才能够使用,如果在鉴权的时候传递了无权限的 intents,websocket 会报错,并直接关闭连接。
intents传空数组时,将默认开启全部事件类型的监听。