You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:22:33