本文最后更新于 2024年9月17日 晚上
                  
                
              
            
            
              
                
                开始之前
今天我们讲的是,如何在koishi发送纯按钮消息,不含Markdown
准备的条件
- 一个已通过的按钮消息模板
- 一个QQ官方bot号
- koishi+onebotv11
截至到发稿为止,QQ官方那边按钮主动被动都不需要日活,md主动不需要日活被动需要DAU2000+
发送消息
首先我们登录QQ开放平台,找到我们通过的按钮消息模板,点我直达,在高阶能力查看你的按钮消息模板

确保你要发送的模板处于已通过状态
这里根据官方文档的api给出,我这里用的是早苗的gsk,发送markdown是
这里后面是接base64编码的内容,但是这里编码要指定utf8的,早苗群里的都是py实现,没有ts实现
成品
| 12
 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")}]`))
 })
 }
 
 | 
