Skip to content

消息段类型

对于每一种消息段类型,将分别给出消息段格式和 CQ 码格式的例子,然后解释各参数的含义。

下面所有可能的值为 01 的参数,也可以使用 noyesfalsetrue

纯文本

json
{
    "type": "text",
    "data": {
        "text": "纯文本内容"
    }
}
纯文本内容
参数名可能的值说明
text-纯文本内容

QQ 表情

json
{
    "type": "face",
    "data": {
        "id": "123"
    }
}
[CQ:face,id=123]
参数名可能的值说明
idQQ 表情 ID 表QQ 表情 ID

图片

json
{
    "type": "image",
    "data": {
        "file": "http://baidu.com/1.jpg"
    }
}
[CQ:image,file=http://baidu.com/1.jpg]
参数名可能的值说明
file[1]-图片文件名
typeflash图片类型,flash 表示闪照,无此参数表示普通图片
url-图片 URL
cache0 1只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 1
proxy0 1只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 1
timeout-只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间,默认不超时

[1] 发送时,file 参数除了支持使用收到的图片文件名直接发送外,还支持:

  • 绝对路径,例如 file:///C:\\Users\Richard\Pictures\1.png,格式使用 file URI
  • 网络 URL,例如 http://i1.piimg.com/567571/fdd6e7b6d93f1ef0.jpg
  • Base64 编码,例如 base64://iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAAKElEQVQ4EWPk5+RmIBcwkasRpG9UM4mhNxpgowFGMARGEwnBIEJVAAAdBgBNAZf+QAAAAABJRU5ErkJggg==

语音

json
{
    "type": "record",
    "data": {
        "file": "http://baidu.com/1.mp3"
    }
}
[CQ:record,file=http://baidu.com/1.mp3]
参数名可能的值说明
file[1]-语音文件名
magic0 1发送时可选,默认 0,设置为 1 表示变声
url-语音 URL
cache0 1只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 1
proxy0 1只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 1
timeout-只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时

[1] 发送时,file 参数除了支持使用收到的语音文件名直接发送外,还支持其它形式,参考 图片

短视频

json
{
    "type": "video",
    "data": {
        "file": "http://baidu.com/1.mp4"
    }
}
[CQ:video,file=http://baidu.com/1.mp4]
参数名可能的值说明
file[1]-视频文件名
url-视频 URL
cache0 1只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 1
proxy0 1只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 1
timeout-只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时

[1] 发送时,file 参数除了支持使用收到的视频文件名直接发送外,还支持其它形式,参考 图片

@某人

json
{
    "type": "at",
    "data": {
        "qq": "10001000"
    }
}
[CQ:at,qq=10001000]
参数名可能的值说明
qqQQ 号、all@的 QQ 号,all 表示全体成员

猜拳魔法表情

json
{
    "type": "rps",
    "data": {}
}
[CQ:rps]

掷骰子魔法表情

json
{
    "type": "dice",
    "data": {}
}
[CQ:dice]

窗口抖动(戳一戳)

提示

相当于戳一戳最基本类型的快捷方式。

json
{
    "type": "shake",
    "data": {}
}
[CQ:shake]

戳一戳

json
{
    "type": "poke",
    "data": {
        "type": "126",
        "id": "2003"
    }
}
[CQ:poke,type=126,id=2003]
参数名可能的值说明
typeMirai 的 PokeMessage 类类型
id同上ID
name同上表情名

匿名发消息

提示

当收到匿名消息时,需要通过 消息事件的群消息anonymous 字段判断。

json
{
    "type": "anonymous",
    "data": {}
}
[CQ:anonymous]
参数名可能的值说明
ignore0 1可选,表示无法匿名时是否继续发送

链接分享

json
{
    "type": "share",
    "data": {
        "url": "http://baidu.com",
        "title": "百度"
    }
}
[CQ:share,url=http://baidu.com,title=百度]
参数名可能的值说明
url-URL
title-标题
content-发送时可选,内容描述
image-发送时可选,图片 URL

推荐好友

json
{
    "type": "contact",
    "data": {
        "type": "qq",
        "id": "10001000"
    }
}
[CQ:contact,type=qq,id=10001000]
参数名可能的值说明
typeqq推荐好友
id-被推荐人的 QQ 号

推荐群

json
{
    "type": "contact",
    "data": {
        "type": "group",
        "id": "100100"
    }
}
[CQ:contact,type=group,id=100100]
参数名可能的值说明
typegroup推荐群
id-被推荐群的群号

位置

json
{
    "type": "location",
    "data": {
        "lat": "39.8969426",
        "lon": "116.3109099"
    }
}
[CQ:location,lat=39.8969426,lon=116.3109099]
参数名可能的值说明
lat-纬度
lon-经度
title-发送时可选,标题
content-发送时可选,内容描述

音乐分享

json
{
    "type": "music",
    "data": {
        "type": "163",
        "id": "28949129"
    }
}
[CQ:music,type=163,id=28949129]
参数名可能的值说明
typeqq 163 xm分别表示使用 QQ 音乐、网易云音乐、虾米音乐
id-歌曲 ID

音乐自定义分享

json
{
    "type": "music",
    "data": {
        "type": "custom",
        "url": "http://baidu.com",
        "audio": "http://baidu.com/1.mp3",
        "title": "音乐标题"
    }
}
[CQ:music,type=custom,url=http://baidu.com,audio=http://baidu.com/1.mp3,title=音乐标题]
参数名可能的值说明
typecustom表示音乐自定义分享
url-点击后跳转目标 URL
audio-音乐 URL
title-标题
content-发送时可选,内容描述
image-发送时可选,图片 URL

回复

json
{
    "type": "reply",
    "data": {
        "id": "123456"
    }
}
[CQ:reply,id=123456]
参数名可能的值说明
id-回复时引用的消息 ID

合并转发

json
{
    "type": "forward",
    "data": {
        "id": "123456"
    }
}
[CQ:forward,id=123456]
参数名可能的值说明
id-合并转发 ID,需通过 get_forward_msg API 获取具体内容

合并转发节点

json
{
    "type": "node",
    "data": {
        "id": "123456"
    }
}
[CQ:node,id=123456]
参数名可能的值说明
id-转发的消息 ID

合并转发自定义节点

注意

接收时,此消息段不会直接出现在消息事件的 message 中,需通过 get_forward_msg API 获取。

例 1

json
{
    "type": "node",
    "data": {
        "user_id": "10001000",
        "nickname": "某人",
        "content": "[CQ:face,id=123]哈喽~"
    }
}
[CQ:node,user_id=10001000,nickname=某人,content=[CQ:face,id=123]哈喽~]

例 2

json
{
    "type": "node",
    "data": {
        "user_id": "10001000",
        "nickname": "某人",
        "content": [
            {"type": "face", "data": {"id": "123"}},
            {"type": "text", "data": {"text": "哈喽~"}}
        ]
    }
}
参数名可能的值说明
user_id-发送者 QQ 号
nickname-发送者昵称
content-消息内容,支持发送消息时的 message 数据类型,见 API 的参数

XML 消息

json
{
    "type": "xml",
    "data": {
        "data": "<?xml ..."
    }
}
[CQ:xml,data=<?xml ...]
参数名可能的值说明
data-XML 内容

JSON 消息

json
{
    "type": "json",
    "data": {
        "data": "{\"app\": ..."
    }
}
[CQ:json,data={"app": ...]
参数名可能的值说明
data-JSON 内容

上一节下一节
数组格式API 概述