Movatterモバイル変換


[0]ホーム

URL:


go-cqhttp 帮助中心

CQ 码 / CQ Code

CQ 码是指 CQ 中特殊消息类型的文本格式, 这是它的基本语法:

[CQ:类型,参数=值,参数=值]
1

在 QQ 中, 一个消息由多个部分构成, 例如一段文本, 一个图片, at 某人的一个部分. CQ 中定义了与这些消息相符的 CQ 码, 以方便用户使用.

例如, 下面是由一个 at 部分和一个文本部分构成的合法 CQ 消息串

[CQ:at,qq=114514]早上好啊
1

例如qq号为114514的人昵称为"小明", 那么上述消息串在QQ中的渲染是这样的:

@小明 早上好啊
1

注意, CQ 码中不应该有多余的空格, 请不要在任何逗号后或前添加空格, 它会被识别为参数或参数值的一部分.

关于 CQ 码对应的 JSON 格式说明, 参考:go-cqhttp 帮助中心: 参考

转义

CQ 码由字符[ 起始, 以] 结束, 并且以, 分割各个参数, 如果你的 CQ 码中, 参数值包括了这些字符, 那么它们应该被使用 HTML 特殊字符的编码方式进行转义.

字符对应实体转义序列
&&
[[
]]
,,

消息类型

下面规定了 CQ 所支持的特殊消息类型

QQ 表情

Type:face

{"type":"face","data":{"id":"123"}}
1
2
3
4
5
6
[CQ:face,id=123]
1

参数 :

参数名可能的值说明
idQQ 表情 ID 表open in new windowQQ 表情 ID

语音

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

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

短视频

注意

go-cqhttp-v0.9.38 起开始支持发送,需要依赖ffmpeg

{"type":"video","data":{"file":"http://baidu.com/1.mp4"}}
1
2
3
4
5
6
[CQ:video,file=http://baidu.com/1.mp4]
1
参数名类型可能的值说明
filestring-视频地址, 支持http和file发送
coverstring-视频封面, 支持http, file和base64发送, 格式必须为jpg
cint23通过网络下载视频时的线程数, 默认单线程. (在资源不支持并发时会自动处理)

@某人

{"type":"at","data":{"qq":"10001000","name":"此栏无效,此人在群里"}}
1
2
3
4
5
6
7
[CQ:at,qq=10001000][CQ:at,qq=123,name=不在群的QQ][CQ:at,qq=all]
1
2
3
参数名可能的值说明
qqQQ 号、all@的 QQ 号,all 表示全体成员
name字符串当在群中找不到此QQ号的名称时才会生效

猜拳魔法表情

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

{"type":"rps","data":{}}
1
2
3
4
[CQ:rps]
1

掷骰子魔法表情

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

{"type":"dice","data":{}}
1
2
3
4
[CQ:dice]
1

窗口抖动(戳一戳)

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

提示

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

{"type":"shake","data":{}}
1
2
3
4
[CQ:shake]
1

匿名发消息

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

提示

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

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

链接分享

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

推荐好友/群

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

[CQ:contact,type=qq,id=10001000][CQ:contact,type=group,id=100100]
1
2
参数名可能的值说明
typeqq/group推荐好友/群
id-被推荐的 QQ (群)号

位置

注意

该 CQcode 暂未被 go-cqhttp 支持, 您可以提交 pr 以使该 CQcode 被支持提交 propen in new window

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

音乐分享

{"type":"music","data":{"type":"163","id":"28949129"}}
1
2
3
4
5
6
7
[CQ:music,type=163,id=28949129]
1
参数名可能的值说明
typeqq163xm分别表示使用 QQ 音乐、网易云音乐、虾米音乐
id-歌曲 ID

音乐自定义分享

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

图片

Type :image

范围:发送/接收

参数:

参数名可能的值说明
file-图片文件名
typeflash,show图片类型,flash 表示闪照,show 表示秀图, 默认普通图片
subType-图片子类型, 只出现在群聊.
url-图片 URL
cache01只在通过网络 URL 发送时有效, 表示是否使用已缓存的文件, 默认1
id-发送秀图时的特效id, 默认为40000
c23通过网络下载图片时的线程数, 默认单线程. (在资源不支持并发时会自动处理)

可用的特效ID:

id类型
40000普通
40001幻影
40002抖动
40003生日
40004爱你
40005征友

子类型列表:

value说明
0正常图片
1表情包, 在客户端会被分类到表情包图片并缩放显示
2热图
3斗图
4智图?
7贴图
8自拍
9贴图广告?
10有待测试
13热搜图

发送时,file 参数支持:

  • 绝对路径,例如file:///C:\\Users\Alice\Pictures\1.png,格式使用file URIopen in new window
  • 网络 URL,例如https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
  • Base64 编码,例如base64://iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAAKElEQVQ4EWPk5+RmIBcwkasRpG9UM4mhNxpgowFGMARGEwnBIEJVAAAdBgBNAZf+QAAAAABJRU5ErkJggg==

示例:[CQ:image,file=http://baidu.com/1.jpg,type=show,id=40004]

注意

图片最大不能超过30MB

PNG格式不会被压缩, JPG可能不会二次压缩, GIF非动图转成PNG

GIF动图原样发送(总帧数最大300张, 超过无法发出, 无论循不循环)

回复

Type :reply

提示

如果idtext 同时存在, 将采用自定义reply并替换原有信息 如果id 获取失败, 将回退到自定义reply

范围:发送/接收

参数:

参数名类型说明
idint回复时所引用的消息id, 必须为本群消息.
textstring自定义回复的信息
qqint64自定义回复时的自定义QQ, 如果使用自定义信息必须指定.
timeint64自定义回复时的时间, 格式为Unix时间
seqint64起始消息序号, 可通过get_msg 获得

示例:[CQ:reply,id=123456]
自定义回复示例:[CQ:reply,text=Hello World,qq=10086,time=3376656000,seq=5123]

红包

Type:redbag

参数:

参数名类型说明
titlestring祝福语/口令

示例:[CQ:redbag,title=恭喜发财]

戳一戳

注意

发送戳一戳消息无法撤回, 返回的message id 恒定为0

Type:poke

范围:仅群聊

参数:

参数名类型说明
qqint64需要戳的成员

示例:[CQ:poke,qq=123456]

礼物

注意

仅支持免费礼物, 发送群礼物消息 无法撤回, 返回的message id 恒定为0

Type:gift

范围:仅群聊,接收的时候不是 CQ 码

参数 :

参数名类型说明
qqint64接收礼物的成员
idint礼物的类型

目前支持的礼物 ID :

id类型
0甜 Wink
1快乐肥宅水
2幸运手链
3卡布奇诺
4猫咪手表
5绒绒手套
6彩虹糖果
7坚强
8告白话筒
9牵你的手
10可爱猫咪
11神秘面具
12我超忙的
13爱心口罩

示例:[CQ:gift,qq=123456,id=8]

合并转发

Type:forward

参数:

参数名类型说明
idstring合并转发ID, 需要通过/get_forward_msg API获取转发的具体内容

示例:[CQ:forward,id=xxxx]

合并转发消息节点

Type:node

参数:

参数名类型说明特殊说明
idint32转发消息id直接引用他人的消息合并转发, 实际查看顺序为原消息发送顺序与下面的自定义消息二选一
namestring发送者显示名字用于自定义消息 (自定义消息并合并转发, 实际查看顺序为自定义消息段顺序)
uinint64发送者QQ号用于自定义消息
contentmessage具体消息用于自定义消息不支持转发套娃
seqmessage具体消息用于自定义消息

特殊说明:需要使用单独的API/send_group_forward_msg 发送, 并且由于消息段较为复杂, 仅支持Array形式入参。 如果引用消息和自定义消息同时出现, 实际查看顺序将取消息段顺序. 另外按Onebot v11open in new window 文档说明,data 应全为字符串, 但由于需要接收message 类型的消息, 所以仅限此Type的content字段 支持Array套娃

示例:

直接引用消息合并转发:

[{"type":"node","data":{"id":"123"}},{"type":"node","data":{"id":"456"}}]
1
2
3
4
5
6
7
8
9
10
11
12
13
14

自定义消息合并转发:

[{"type":"node","data":{"name":"消息发送者A","uin":"10086","content":[{"type":"text","data":{"text":"测试消息1"}}]}},{"type":"node","data":{"name":"消息发送者B","uin":"10087","content":"[CQ:image,file=xxxxx]测试消息2"}}]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

引用自定义混合合并转发:

[{"type":"node","data":{"name":"自定义发送者","uin":"10086","content":"我是自定义消息","seq":"5123","time":"3376656000"}},{"type":"node","data":{"id":"123"}}]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

XML 消息

Type:xml

范围:发送 / 接收

参数:

参数名类型说明
datastringxml内容, xml中的value部分, 记得实体化处理
residint32可能为空, 或空字符串

示例:[CQ:xml,data=xxxx]

一些 xml 样例
ps:重要 : xml 中的 value 部分, 记得 html 实体化处理后, 再打加入到 CQ 码中
QQ 音乐
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msgserviceID="2"templateID="1"action="web"brief="&#91;分享&#93; 十年"sourceMsgId="0"url="https://i.y.qq.com/v8/playsong.html?_wv=1&amp;songid=4830342&amp;souce=qqshare&amp;source=qqshare&amp;ADTAG=qqshare"flag="0"adverSign="0"multiMsgFlag="0"><itemlayout="2"><audiocover="http://imgcache.qq.com/music/photo/album_500/26/500_albumpic_89526_0.jpg"src="http://ws.stream.qqmusic.qq.com/C400003mAan70zUy5O.m4a?guid=1535153710&amp;vkey=D5315B8C0603653592AD4879A8A3742177F59D582A7A86546E24DD7F282C3ACF81526C76E293E57EA1E42CF19881C561275D919233333ADE&amp;uin=&amp;fromtag=3"/><title>十年</title><summary>陈奕迅</summary></item><sourcename="QQ音乐"icon="https://i.gtimg.cn/open/app_icon/01/07/98/56/1101079856_100_m.png"url="http://web.p.qq.com/qqmpmobile/aio/app.html?id=1101079856"action="app"a_actionData="com.tencent.qqmusic"i_actionData="tencent1101079856://"appid="1101079856"/></msg>
1
网易音乐
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msgserviceID="2"templateID="1"action="web"brief="&#91;分享&#93; 十年"sourceMsgId="0"url="http://music.163.com/m/song/409650368"flag="0"adverSign="0"multiMsgFlag="0"><itemlayout="2"><audiocover="http://p2.music.126.net/g-Qgb9ibk9Wp_0HWra0xQQ==/16636710440565853.jpg?param=90y90"src="https://music.163.com/song/media/outer/url?id=409650368.mp3"/><title>十年</title><summary>黄梦之</summary></item><sourcename="网易云音乐"icon="https://pic.rmb.bdstatic.com/911423bee2bef937975b29b265d737b3.png"url="http://web.p.qq.com/qqmpmobile/aio/app.html?id=1101079856"action="app"a_actionData="com.netease.cloudmusic"i_actionData="tencent100495085://"appid="100495085"/></msg>
1
卡片消息 1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><msgserviceID="1"><item><title>生死8秒!女司机高速急刹, 他一个操作救下一车性命</title></item><sourcename="官方认证消息"icon="https://qzs.qq.com/ac/qzone_v5/client/auth_icon.png"action=""appid="-1"/></msg>
1
2
3
4
5
卡片消息 2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><msgserviceID="1"><itemlayout="4"><title>test title</title><picturecover="http://url.cn/5CEwIUy"/></item></msg>
1
2
3
4
5
6
7

JSON 消息

Type:json

范围:发送/接收

参数:

参数名类型说明
datastringjson内容, json的所有字符串记得实体化处理
residint32默认不填为0, 走小程序通道, 填了走富文本通道发送

json中的字符串需要进行转义 :

","=>&#44;

"&"=>&amp;

"["=>&#91;

"]"=>&#93;

否则无法正确得到解析

示例 json 的 CQ 码 :

[CQ:json,data={"app":"com.tencent.miniapp"&#44;"desc":""&#44;"view":"notification"&#44;"ver":"0.0.0.1"&#44;"prompt":"&#91;应用&#93;"&#44;"appID":""&#44;"sourceName":""&#44;"actionData":""&#44;"actionData_A":""&#44;"sourceUrl":""&#44;"meta":{"notification":{"appInfo":{"appName":"全国疫情数据统计"&#44;"appType":4&#44;"appid":1109659848&#44;"iconUrl":"http:\/\/gchat.qpic.cn\/gchatpic_new\/719328335\/-2010394141-6383A777BEB79B70B31CE250142D740F\/0"}&#44;"data":&#91;{"title":"确诊"&#44;"value":"80932"}&#44;{"title":"今日确诊"&#44;"value":"28"}&#44;{"title":"疑似"&#44;"value":"72"}&#44;{"title":"今日疑似"&#44;"value":"5"}&#44;{"title":"治愈"&#44;"value":"60197"}&#44;{"title":"今日治愈"&#44;"value":"1513"}&#44;{"title":"死亡"&#44;"value":"3140"}&#44;{"title":"今**亡"&#44;"value":"17"}&#93;&#44;"title":"中国加油, 武汉加油"&#44;"button":&#91;{"name":"病毒 : SARS-CoV-2, 其导致疾病命名 COVID-19"&#44;"action":""}&#44;{"name":"传染源 : 新冠肺炎的患者。无症状感染者也可能成为传染源。"&#44;"action":""}&#93;&#44;"emphasis_keyword":""}}&#44;"text":""&#44;"sourceAd":""}]
1

cardimage

一种xml的图片消息(装逼大图)

PS

xml 接口的消息都存在风控风险, 请自行兼容发送失败后的处理 ( 可以失败后走普通图片模式 )

Type:cardimage

参数:

参数名类型说明
filestring和image的file字段对齐, 支持也是一样的
minwidthint64默认不填为400, 最小width
minheightint64默认不填为400, 最小height
maxwidthint64默认不填为500, 最大width
maxheightint64默认不填为1000, 最大height
sourcestring分享来源的名称, 可以留空
iconstring分享来源的icon图标url, 可以留空

示例cardimage 的cq码 :

[CQ:cardimage,file=https://i.pixiv.cat/img-master/img/2020/03/25/00/00/08/80334602_p0_master1200.jpg]
1

文本转语音

注意

通过TX的TTS接口, 采用的音源与登录账号的性别有关

Type:tts

范围:仅群聊

参数:

参数名类型说明
textstring内容

示例:[CQ:tts,text=这是一条测试消息]


[8]ページ先頭

©2009-2025 Movatter.jp