你可以尝试使用 @shangxueink/qq-markdown-button
插件
搭配其中的主动广播功能使用:
你可能需要参考的相关文档:(就是你给的地址。但你必须通读且掌握,否则无法自主使用 且 编辑调试本插件。)
被动ARK,是这样的效果
相关配置:
raw_markdown.json:
{
"msg_type": 3,
"msg_id": "${session.messageId}",
"ark": {
"template_id": 37,
"kv": [
{
"key": "#PROMPT#",
"value": "通知提醒"
},
{
"key": "#METATITLE#",
"value": "标题"
},
{
"key": "#METASUBTITLE#",
"value": "子标题"
},
{
"key": "#METACOVER#",
"value": "https://vfiles.gtimg.cn/vupload/20211029/bf0ed01635493790634.jpg"
}
]
}
}
不过注意
主动消息,与被动消息的发送格式和内容可能有所不同。
并且我所给的示例是原生md的,DAU不足的话可能还需要处理一下图片URL的白名单什么的。
首要的是,你需要参考QQ开放平台的文档以确保格式正确。
如需测试,你可以先写好 被动调用
的json内容之后,去除掉json其中的messageId
内容以变成主动消息。然后在群里进行指令调用(就像被动调用一样),但实际发的是主动消息。
由于在一个群里,一个月只有四次主动消息的机会,所以如果你觉得测试机会不够可以多拉几个群测试(如果是全量公域并且已经上线了的话)
广播案例:
使用机器人:
- 公域全量机器人,且已经上线
- 具备markdown功能
- 拥有markdown模板和json按钮模板
- 有上千个QQ群的用户规模
注意注意:开启调试日志模式的话,广播模式下 日志会刷个不停,因此建议新开实例来使用广播,以确保不影响正常生产模式的功能运行。
因此 如果你是打算不影响生产环境运行,而单独开一个实例来主动推送,请确保数据库内有足够多的群组数据!!!(最好是把生产环境的数据库直接覆盖过来进行推送。)
主动消息效果预览:
所使用的 markdown.json
内容:(因为是主动消息,所以dau不足2000,也是可以发模板markdown和模板按钮的)
{
"msg_type": 2,
"markdown": {
"custom_template_id": "${config.markdown_id}",
"params": [
{
"key": "text1",
"values": [
"塞西莉亚来啦!"
]
},
{
"key": "text2",
"values": [
"请大家多多使用我的功能哦~"
]
},
{
"key": "img",
"values": [
"![img#500px #500px]"
]
},
{
"key": "url",
"values": [
"(https://i0.hdslb.com/bfs/article/afc31d0e398204d94478473a497028e6352074746.gif)"
]
}
]
},
"keyboard": {
"id": "${config.json_button_id}"
}
}
本插件的具体 配置项搭配:
注意注意:开启调试日志模式的话,广播模式下 日志会刷个不停,因此建议新开实例来使用广播,以确保不影响正常生产模式的功能运行。
相关日志内容:
广播+日志调试模式,会让控制台很卡顿(
最终打印:QQ 群组频道广播消息发送完成。
可以看到日志有不少报错。
嘛,一般你通过指令测试主动消息正常了之后,只需要开启【广播】选项,然后再次触发指令。即可开始正常广播了。
这里的日志的报错都是一些常见报错:
- 机器人曾经在群里,但现在被移出群了,只是数据还在你的数据库里
- 该群不接收主动消息
- 该群禁言(?
- …
谢谢,我去尝试一下