# 事件

# 单聊消息

说明

用户在单聊发送消息给机器人

  • 基本概况
基本
intents 1<<25
事件类型 C2C_MESSAGE_CREATE
触发场景 用户在单聊发送消息给机器人
权限要求 无特殊要求
推送方式 Websocket
  • 事件字段
属性 类型 说明
id string 平台方消息ID,可以用于被动消息发送
author object 发送者
content string 文本消息内容
timestamp string 消息生产时间(RFC3339)
attachments object[] 富媒体文件附件,文件类型:"图片,语音,视频,文件"

author对象

属性 类型 说明
user_openid string 用户 openid

attachment对象

属性 类型 说明
content_type string 文件类型,"image/jpeg","image/png","image/gif","file","video/mp4","voice"
filename string 文件名称
height int 图片高度
width int 图片宽度
size int 文件大小
url string 文件链接
  • 事件示例
{
  "author": {
      "user_openid": "E4F4AEA33253A2797FB897C50B81D7ED"
  },
  "content": "123",
  "id": "ROBOT1.0_.b6nx.CVryAO0nR58RXuU6SC.m92gc19j02qKqdm8ek!",
  "timestamp": "2023-11-06T13:37:18+08:00"
}
1
2
3
4
5
6
7
8
  • 其他说明

为了确保消息可到达,极端情况下,相同的 msg_id 的消息会有概率重复推送,当开发者在做“被动回复消息”响应业务的时候,如果开发者不对 msg_id 的回复做存储排重后的回复逻辑,很可能会回复了两条相同的消息给用户,这里我们引入了一个 msg_seq 的字段,便于过滤重复消息响应,可参考消息发送接口 msg_seq 的用法。

# 群聊@机器人

说明

用户在群内@机器人发动的消息

  • 基本概况
基本
intents 1<<25
事件类型 GROUP_AT_MESSAGE_CREATE
触发场景 用户在群聊@机器人发送消息
权限要求 无特殊要求
推送方式 Websocket
  • 事件字段
属性 类型 说明
id string 平台方消息 ID,可以用于被动消息发送
author object 发送者
content string 消息内容
timestamp string 消息生产时间(RFC3339)
group_openid string 群聊的 openid
attachments object[] 富媒体文件附件,文件类型:"图片,语音,视频,文件"

author对象

属性 类型 说明
member_openid string 用户在本群的 member_openid
  • 事件示例
// Websocket
{
  "author": {
      "member_openid": "E4F4AEA33253A2797FB897C50B81D7ED"
  },
  "content": " 123",
  "group_openid": "C9F778FE6ADF9D1D1DBE395BF744A33A",
  "id": "ROBOT1.0_eBIyWnxpmSu6uLQ7u7fU0eGloKGYg4eEa737vRyKnMCgyZjKi7JLYkQ9B0VapbiY",
  "timestamp": "2023-11-06T13:37:18+08:00"
}
1
2
3
4
5
6
7
8
9
10
  • 其他说明

为了确保消息可到达,极端情况下,相同的 msg_id 的消息会有概率重复推送,当开发者在做“被动回复消息”响应业务的时候,如果开发者不对 msg_id 的回复做存储排重后的回复逻辑,很可能会回复了两条相同的消息给用户,这里我们引入了一个 msg_seq 的字段,便于过滤重复消息响应,可参考消息发送接口 msg_seq 的用法。

# 频道私信消息

用户在频道私信给机器人发送的消息

  • 基本概况
基本
事件类型 DIRECT_MESSAGE_CREATE
触发场景 用户在频道私信内发送消息给机器人
权限要求 无特殊要求
推送方式 Websocket

# 发送时机

  • 用户通过私信发消息给机器人时
  • 由于私信场景无法设置沙箱频道,目前私信事件不支持沙箱环境,开发者可以通过用户 id 白名单的方式来调试私信

# 内容

内容为 Message 对象

# 示例

{
    "author": {
        "avatar": "http://thirdqq.qlogo.cn/0",
        "bot": false,
        "id": "1234",
        "username": "abc"
    },
    "channel_id": "100010",
    "content": "ndnnd",
    "guild_id": "18700000000001",
    "id": "0812345677890abcdef",
    "member": {
        "joined_at": "2021-04-12T16:34:42+08:00",
        "roles": [
            "1"
        ]
    },
    "timestamp": "2021-05-20T15:14:58+08:00"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 文字子频道@机器人

用户在文字子频道内@机器人发送的消息

  • 基本概况
基本
事件类型 AT_MESSAGE_CREATE
触发场景 用户在频道私信内发送消息给机器人
权限要求 无特殊要求
推送方式 Websocket

# 发送时机

  • 用户发送消息,@当前机器人或回复机器人消息时
  • 为保障消息投递的速度,消息顺序我们虽然会尽量有序,但是并不保证是严格有序的,如开发者对消息顺序有严格有序的需求,可以自行缓冲消息事件之后,基于 Message.seq 进行排序

# 内容

内容为 Message 对象

# 示例

{
  "author": {
    "avatar": "http://thirdqq.qlogo.cn/0",
    "bot": false,
    "id": "1234",
    "username": "abc"
  },
  "channel_id": "100010",
  "content": "ndnnd",
  "guild_id": "18700000000001",
  "id": "0812345677890abcdef",
  "member": {
    "joined_at": "2021-04-12T16:34:42+08:00",
    "roles": ["1"]
  },
  "timestamp": "2021-05-20T15:14:58+08:00",
  "seq": 101
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 文字子频道全量消息(私域)

用户在文字子频道内发送的所有聊天消息(私域)

  • 基本概况
基本
事件类型 MESSAGE_CREATE
触发场景 用户在频道私信内发送消息给机器人
权限要求 无特殊要求
推送方式 Websocket

# 发送时机

  • 用户发送消息,@当前机器人或回复机器人消息时
  • 为保障消息投递的速度,消息顺序我们虽然会尽量有序,但是并不保证是严格有序的,如开发者对消息顺序有严格有序的需求,可以自行缓冲消息事件之后,基于 Message.seq 进行排序

# 内容

内容为 Message 对象

# 示例

{
  "author": {
    "avatar": "http://thirdqq.qlogo.cn/0",
    "bot": false,
    "id": "1234",
    "username": "abc"
  },
  "channel_id": "100010",
  "content": "ndnnd",
  "guild_id": "18700000000001",
  "id": "0812345677890abcdef",
  "member": {
    "joined_at": "2021-04-12T16:34:42+08:00",
    "roles": ["1"]
  },
  "timestamp": "2021-05-20T15:14:58+08:00",
  "seq": 101
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
手机QQ扫码
开发者社区
加入官方频道开发者社区