Koishi如何发送纯按钮消息

本文最后更新于:2024年9月17日 晚上

开始之前

今天我们讲的是,如何在koishi发送纯按钮消息,不含Markdown

准备的条件

  • 一个已通过的按钮消息模板
  • 一个QQ官方bot
  • koishi+onebotv11

截至到发稿为止,QQ官方那边按钮主动被动都不需要日活md主动不需要日活被动需要DAU2000+


发送消息

首先我们登录QQ开放平台,找到我们通过的按钮消息模板,点我直达,在高阶能力查看你的按钮消息模板

确保你要发送的模板处于已通过状态

这里根据官方文档的api给出,我这里用的是早苗的gsk,发送markdown

1
[CQ:markdown,data=xxxx]

这里后面是接base64编码的内容,但是这里编码要指定utf8的,早苗群里的都是py实现,没有ts实现


成品

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { Buffer } from 'buffer';
import { Context, h } from 'koishi';

export function get_keyboard(id: string){
let data ={
"markdown": {
"template_id": 1,
"params": [{}]
},
"keyboard": {
"id": id
}
}
var jsonStr1 : string = JSON.stringify(data, null, 1);
var dataBytes1 : Buffer = Buffer.from(jsonStr1, 'utf-8');
var encodedData1 : string = dataBytes1.toString('base64');
return encodedData1
}
export function main(ctx: Context){
ctx.command("测试")
.action(async({session})=>{
await session.send(h.parse(`[CQ:markdown,data=base64://${get_keyboard("1111111_1111111")}]`))
})
}


Koishi如何发送纯按钮消息
http://blog.bingyue.top/2024/09/17/koishi_send_keyborad/
作者
bingyue
发布于
2024年9月17日
许可协议