如何在BaleBot Node.js API中发送模板消息?代码报错求助
搞定BaleBot Node.js API模板消息(键盘消息)的问题
你的代码里有几个容易踩的小坑,我逐个帮你解决:
1. 先搞懂buttonList是什么
SimpleTemplate构造函数的第二个参数buttonList,本质就是你要放到模板里的所有按钮的数组。如果一开始没准备好按钮,直接传个空数组[]就行,后面再动态加也可以。
2. Button类的参数要这么用
你写的text like "salam"这种写法不对哦,BaleBot的Button构造函数是按固定顺序传参数的:
- 第一个参数:按钮上显示的文字(比如
"salam") - 第二个参数:用户点击按钮后,后台收到的回调值(比如
"/hello") - 第三个参数:按钮类型,
1是普通文本按钮(点击后发回调值给后台),2是URL按钮(点击后打开链接)
正确创建按钮的代码是:
const button = new Button("salam", "/hello", 1);
3. 没有addbtn?用这个方法代替
你说的addbtn方法确实不存在,官方提供的是addButtons(注意是复数),它接受一个按钮数组,哪怕你只加一个按钮,也要用数组包起来。两种添加按钮的方式:
方式一:创建模板时直接传按钮数组
先把所有按钮建好,一次性传给SimpleTemplate:
// 先做两个按钮 const greetBtn = new Button("salam", "/hello", 1); const helpBtn = new Button("找帮助", "/get_help", 1); const buttonList = [greetBtn, helpBtn]; // 创建模板 const simpleTemplate = new SimpleTemplate(textMessage, buttonList, "Text");
方式二:先建空模板,再动态加按钮
如果需要后续添加按钮,就用addButtons:
// 先创建空按钮的模板 const simpleTemplate = new SimpleTemplate(textMessage, [], "Text"); // 创建单个按钮并添加 const newBtn = new Button("查看菜单", "/show_menu", 1); simpleTemplate.addButtons([newBtn]); // 这里必须传数组
完整可运行的示例代码
把这些整合起来,完整的发送模板消息代码大概是这样:
// 先引入需要的类 const { SimpleTemplate, Button, TemplateMessage, TextMessage } = require('balebot'); // 创建基础文本消息 const textMessage = new TextMessage("欢迎使用我的机器人!"); // 1. 创建按钮 const greetBtn = new Button("问候", "/hello", 1); const helpBtn = new Button("获取帮助", "/help", 1); // 2. 创建SimpleTemplate const simpleTemplate = new SimpleTemplate(textMessage, [greetBtn, helpBtn], "Text"); // 3. 生成TemplateMessage并发送 const templateMessage = new TemplateMessage(simpleTemplate); // 最后用你的bot实例发送,比如: // bot.sendMessage(chatId, templateMessage);
内容的提问来源于stack exchange,提问作者Seghaleh Site
相关产品推荐
相关产品推荐

