# CQ 码

框架提供了 CQ 码的封装,你可以在任何位置使用封装好的 CQ 码类。

  • 记得先 use 命名空间:use ZM\API\CQ;

关于 CQ 码的概念,请到 酷Q 的 官网文档 (opens new window) 查看。

# CQ::at()

@ 一下 QQ 用户,或 @ 全体成员

  • $qq: 用户的 QQ 号码或 all
$this->reply(CQ::at(10086) . " 你今天学习了吗?");
// 效果是这个用户收到了前面带@自己的一条消息
$this->reply(CQ::at("all") . " 我是来自领导的消息,收到请回复!");
// "@全体成员 我是来自领导的消息,收到请回复!"
1
2
3
4

# CQ::face()

发送 QQ 原生的黄脸表情。这里是 ID 对照表

  • $id: 表情的 id 号
$this->reply(CQ::face(8)."我困了");
1

# CQ::emoji()

发送 emoji 表情。这是对应 CQ 码原生的接口,在实际发送 emoji 的时候推荐直接向文本中插入 emoji 发送。

  • $id: 表情的 id 号

# CQ::bface()

发送原创表情,存放在 酷Q 目录的 data/bface/ 下。

  • $id: 表情的 id 号

# CQ::sface()

发送小表情,参数同 CQ::bface()

# CQ::image()

提示

需要 酷Q Pro 版本才可以发图,酷Q Air 版本只可以从 CQ 码中解析图片。

发送图片。这里支持 CQHTTP 的 增强 CQ 码 (opens new window)

  • $file: 图片文件地址。支持 酷Q 本地和远程地址
  • $cache: 是否使用 CQHTTP 插件的缓存,默认为 true
$image = 'https://zhamao.xin/file/hello.jpg'; //炸毛主页的丑图,招主页设计师
$this->reply(CQ::image($image) . "\n这是一张又大又丑的炸毛主页图片");
//发网络图片
1
2
3

# CQ::record()

提示

需要 酷Q Pro 版本才可以发语音,酷Q Air 版本只可以从 CQ 码中解析语音。

发送语音,这里支持 CQHTTP 的 增强 CQ 码 (opens new window)。语音 CQ 码如果伴随着其他文字,则文字内容会被丢弃。

  • $file: 语音文件地址,支持 酷Q 本地和远程地址
  • $magic: 是否变声,默认为 false
  • $cache: 是否使用 CQHTTP 插件的缓存,默认为 true
$record = 'https://zhamao.xin/file/hello.mp3'; // Siri生成的Hello mp3文件
$this->reply(CQ::record($record));
1
2

# CQ::rps()

掷骰子。掷骰子 CQ 码如果伴随着其他文字,则文字内容会被丢弃。

$this->reply(CQ::rps());
1

# CQ::dice()

发送掷骰子表情。掷骰子 CQ 码如果伴随着其他文字,则文字内容会被丢弃。

$this->reply(CQ::dice());
1

# CQ::shake()

发送戳一戳(原窗口抖动,仅供好友私聊消息使用)

$this->reply(CQ::shake());
1

# CQ::music()

发送音乐分享卡片。此 CQ 码如果伴随着其他文字,则文字内容会被丢弃。

  • $type: 发送类型
  • $id_or_url: 音乐的 id 或 音乐卡片点进去打开的链接
  • $audio: 音频文件的 HTTP 地址
  • $title: 音乐卡片的标题,建议 12 字以内
  • $content: 音乐卡片的简介内容(可选)
  • $image: 音乐卡片的图片的链接地址(可选)

如果 $type 参数为 qq163xiami,则必须且只和第二个参数 $id_or_url 配合使用。这三个为内置分享,需要先通过搜索功能获取对应平台歌曲的 id 后使用。

如果 $type 参数为 custom,则表明此音乐卡片为用户自定义,你可以根据自己的需要自定义卡片内容和音频。此时必须填写 $id_or_url, $audio, $title 三个参数。

$this->reply(CQ::music("163", "730806")); //一首我喜欢的歌
// 以内置的发送类型发送音乐卡片,我这里挑了网易云音乐的一首歌。

$this->reply("custom", "https://baidu.com/", "https://zhamao.xin/file/hello.mp3", "我是Siri说出来的Hello", "不服来打我呀!", "https://zhamao.xin/file/hello.jpg");
// 自定义整个卡片的每个内容
1
2
3
4
5

# CQ::share()

发送链接分享的卡片。只能在单条回复中单独使用,含有其他文本消息会把消息吞掉。

  • $url: 要分享的链接
  • $title: 分享卡片的标题,建议 12 字以内
  • $content: 分享卡片的内容(可选)
  • $image: 分享卡片的展示图片的地址(可选)
// 假如我想弄一个假的内容分享卡片,点进去是让他问百度
$this->reply(CQ::share("https://www.baidu.com/s?wd=怎么写出好代码", "震惊!一小编发现了神秘链接", "点击查看"));
1
2

# CQ::decode()

反转义 CQ 码的敏感符号。请先了解 CQ 码特殊字符规范 (opens new window)

这里做一个反向的转换:

& -> &
[ -> [
] -> ]
1
2
3
  • $str: 要反转义的字符串
$str = CQ::decode("[我只是一条普通的文本]");
// 转换为 "[我只是一条普通的文本]"
1
2

# CQ::encode()

别名:CQ::escape()

转义 CQ 码的敏感符号,防止 酷Q 把不该解析为 CQ 码的消息内容当作 CQ 码处理。

& -> &
[ -> [
] -> ]
1
2
3
  • $str: 要转义的内容
$str = CQ::encode("[CQ:我只是一条普通的文本]");
// $str: "[CQ:我只是一条普通的文本]"
1
2

# CQ::removeCQ()

去除字符串中所有的 CQ 码,替换为空。

  • $msg: 要去除字符串
$str = CQ::removeCQ("[CQ:at,qq=all]这是带表情的全体消息[CQ:face,id=8]");
// $str: "这是带表情的全体消息"
1
2
上次更新: 5/6/2020, 2:58:21 PM