# 发送消息

说明

发送消息分为,主动推送与被动回复,主动消息和被动消息在不同的场景下,发送的频次有不同的规则。 发送消息的接口有4个场景:QQ单聊、QQ群聊、文字子频道、频道私信

主动消息与被动消息说明:

QQ 用户可以在 QQ 客户端主动设置是否接收机器人发送的主动消息,如果设置了关闭,主动消息一律发送失败。

  • 单聊

    • 主动消息每月 4 条,超额会发送失败。(例如:给相同用户每月最多发 4 条)
    • 被动消息(回复类)有效时间为 60 分钟,每个消息最多回复 5 次,超时或超频会发送(回复)失败;
  • 群聊

    • 主动消息每月 4 条,超额会发送失败。(例如:给相同群每月最多发 4 条)
    • 被动消息(回复类)有效时间为 5 分钟,每个消息最多回复 5 次,超时或超频会发送(回复)失败;
  • 文字子频道

    • 主动消息在频道主或管理设置了情况下,按设置的数量进行限频。在未设置的情况遵循如下限制:
      • 主动推送消息,默认每天往每个子频道可推送的消息数是 20 条,超过会被限制。
      • 主动推送消息在每个频道中,每天可以往 2 个子频道推送消息。超过后会被限制。
    • 不论主动消息还是被动消息,在一个子频道中,每秒 最多可发送 5 条 消息。
    • 被动回复消息有效期为 5 分钟,超时会发送失败。
    • 发送消息接口要求机器人接口需要连接到 WebSocket 上保持在线状态
    • 有关主动消息审核,可以通过 事件订阅 Intents 中审核事件 MESSAGE_AUDIT 返回 MessageAudited 对象获取结果。
  • 频道私信

    • 私信场景下,每个机器人每天可以对一个用户发 2 条 主动消息。
    • 私信场景下,每个机器人每天累计可以发 200 条 主动消息。
    • 被动回复消息有效期为 5 分钟,超时会发送失败。

发动的消息内容包含 URL 的说明:

如开发者需要在消息内容发送含有 url 信息的消息,请现在 q.qq.com 后台-开发设置-消息URL配置 预先配置,否则会发送失败。

# 单聊

说明

单独发动消息给用户。

  • 请求
基本
HTTP URL /v2/users/{openid}/messages
HTTP Method POST
  • 路径参数
属性 类型 必填 说明
openid string QQ 用户的 openid,可在各类事件中获得。
  • 请求参数
属性 类型 必填 说明
content string 文本内容
msg_type int 消息类型:0 是文本,2 是 markdown, 3 ark,4 embed,7 media 富媒体
markdown object 格式参考"消息类型=>markdown=>数据结构与协议"
keyboard object 格式参考"消息交互=>消息按钮=>数据结构与协"
ark object 格式参考"消息类型=>ark=>数据结构与协议"
media object {file_info: ""} 数据来源"消息收发=>富媒体消息"
image string 【暂不支持】
message_reference object 【暂未支持】消息引用
event_id string 【暂未支持】前置收到的事件ID,用于发送被动消息
msg_id string 前置收到的用户发送过来的消息 ID,用于发送被动消息(回复)
msg_seq int 回复消息的序号,与 msg_id 联合使用,避免相同消息id回复重复发送,不填默认是1。相同的 msg_id + msg_seq 重复发送会失败。
  • 返回参数
属性 类型 说明
id string 消息唯一ID
timestamp int 发送时间
  • 常见错误码

  • 当 msg_type = 7 时,content 字段需要填入一个值,譬如一个空格 “ ”,后续版本会修复该问题。

code message 说明
22009 msg limit exceed 消息发送超频
304082 upload media info fail 富媒体资源拉取失败,请重试
304083 convert media info fail 富媒体资源拉取失败,请重试

# 群聊

说明

发动消息到群。

  • 请求
基本
HTTP URL /v2/groups/{group_openid}/messages
HTTP Method POST
  • 路径参数
属性 类型 必填 说明
group_openid string 群聊的 openid
  • 请求参数
属性 类型 必填 说明
content string 文本内容
msg_type int 消息类型: 0 文本,2 是 markdown,3 ark 消息,4 embed,7 media 富媒体
markdown object 格式参考"消息类型=>markdown=>数据结构与协议"
keyboard object 格式参考"消息交互=>消息按钮=>数据结构与协"
media object {file_info: ""} 数据来源"消息收发=>富媒体消息"
ark object 格式参考"消息类型=>ark=>数据结构与协议"
image string 【暂不支持】
message_reference object 【暂未支持】消息引用
event_id string 【暂未支持】前置收到的事件ID,用于发送被动消息
msg_id string 前置收到的用户发送过来的消息 ID,用于发送被动消息(回复)
msg_seq int 回复消息的序号,与 msg_id 联合使用,避免相同消息id回复重复发送,不填默认是 1。相同的 msg_id + msg_seq 重复发送会失败。
  • 返回参数
属性 类型 说明
id string 消息唯一 ID
timestamp int 发送时间
  • 常见错误码

  • 当 msg_type = 7 时,content 字段需要填入一个值,譬如一个空格 “ ”,后续版本会修复该问题。

code message 说明
22009 msg limit exceed 消息发送超频
304082 upload media info fail 富媒体资源拉取失败,请重试
304083 convert media info fail 富媒体资源拉取失败,请重试

# 文字子频道

说明

发动消息到文字子频道。

  • 请求
基本
HTTP URL /channels/{channel_id}/messages
HTTP Method POST
  • 详细文档

发送消息|QQ机器人文档

# 频道私信

发动消息到频道私信,请求参数与文字子频道发送消息参数一致

  • 请求
基本
HTTP URL /dms/{guild_id}/messages
HTTP Method POST
  • 详细文档

发送私信|QQ机器人文档

手机QQ扫码
开发者社区
加入官方频道开发者社区