Skip to main content

平台进阶配置

平台特性

其他机制见此处

白名单

  • LR232 存在白名单
  • 需要在后台配置白名单,并且添加进 lr232_dispatch 上方的 WHITE_LIST 里

字符

  • 使用 QQ 进行字符测试
    • 手机中文 25,英文 35
    • 窄屏手机中文 24,英文 33
    • 电脑中文 50,英文 80,等号一行 24
  • 后续发现 QQ 有大字模式,放弃自定义样式(如添加等号,居中等等)

消息长度

  • BILI 最多发送 400 字左右,超出会显示消息太长
  • WECHAT 最多发送 500 字左右

消息格式变迁

LR232
  • 消息体中的 message_scene 字段,以前有 callback_data,现在没了
  • "message_scene": {"source": "default", "callback_data": ""},
  • 9 月开始,消息中的表情除了以 <faceType=6,faceId="1",ext="eyJ0ZXh0IjoiIn0=">的形式被接收,还会在附件里添加一张图片。由于表情无任何 id 信息,无法区分图片混杂表情时的顺序

消息收发机制

LR232

  • 消息回调
    • QQ 机器人开放平台采用 HTTP 接口来接收事件,开发者通过管理端设置回调地址,并选定监听的事件类型,开放平台会将事件通过回调的方式推送给机器人
    • 回调地址采用 Ed25519 签名算法进行验证,使用开发者平台提供的 Bot Secret 进行种子扩展生成 32 字节的公钥,将回调消息中的 event_ts 和 plain_token 组合成签名体 msg,根据公钥、签名体调用 Ed25519 算法进行验证
  • API 调用
    • QQ 机器人服务端开放接口使用 https 方式进行调用。用户需要先使用 AppID 和 AppSecret 调用 api 获取生命周期为 7200 秒的 access_token,再通过在 header 中引入 access_token 进行调用权限验证的方式调用其他 api

LR5921

  • HTTP 客户端:NapCat 作为 HTTP 请求的发起方,将消息事件推送至指定的 url
  • HTTP 服务端:NapCat 作为 HTTP 请求的接收方,接收对应接口调用并回复

WECHAT

  • 回调验证
    • 微信公众平台回调验证的方式与 QQ 机器人相同,但签名算法不同
    • 开发者需要从请求中获取 signature、echostr、timestamp 和 nonce参数,并将 timestamp 和 nonce 参数与配置中的 token 参数一起进行字典序排序,拼接成一个字符串进行 sha1 加密,并于 signature 进行对比,一致则返回 echostr 的值表示验证成功
  • API调用
    • 与QQ机器人基本一致

BILI

  • B 站平台主要通过带登录态的用户 Cookie 实现 API 调用权限控制,包括获取新消息、发送消息等功能

QQAPP

  • QQ 小程序通过 QQ 官方提供的登录能力获取用户身份标识
  • 前端调用 qq.login()获取临时登录凭证 code,并回传到开发者服务器
  • 服务器调用 code2Session 接口,通过 code、AppID 和 AppSecret 换取用户唯一标识 OpenID 和会话密钥 session_keyimg

平台审核

LR232

  • 之前是有测试员进行群聊和私聊的审核,存在消息记录
  • 最近会在提交指令后一会瞬间完成对所有指令的测试,存在一两个与描述不符也可以成功,可能是机器审核
  • 大概会在 3-4 天审核完成
  • 注意:
    • 不用频道的在使用范围里不要添加任何频道,在功能配置里不添加频道功能,即不会触发频道方面的审核,触发“未配置频道指令”的提醒
    • 隐私协议怎么改都无法通过

LR5921

  • 有时会触发掉线,手机验证后即可重新使用

WECHAT

  • 社团公众号申请个人认证无法通过

BILI

  • 可以去文档里查看其他的接口及鉴权方式
  • 有些接口缺少某些写着非必须的参数也无法调用,可能是 B 站之后调整了
  • 有些接口像直播开启,需要特定的请求头并且特定的加密

QQAPP

  • 会有测试员逐一测试功能,用户名大概是:"One-8587", "Two-8587", "New Wave"
  • 出错时会上传错误视频