本文详解为何 bot.sendMessage 报错“message text is empty”,并提供完整解决方案:将数组转为 HTML 字符串时需用 .join('') 合并,而非直接传递数组;同时说明 HTML 解析注意事项与安全实践。
本文详解为何 `bot.sendmessage` 报错“message text is empty”,并提供完整解决方案:将数组转为 html 字符串时需用 `.join('')` 合并,而非直接传递数组;同时说明 html 解析注意事项与安全实践。
在使用 node-telegram-bot-api 发送带格式的 HTML 消息时,一个常见却容易被忽视的错误是:直接将 JavaScript 数组传给 sendMessage() 的 text 参数。Telegram API 严格要求 text 必须是字符串类型(string),而 Array.map() 返回的是数组(如 ['1. abc', '2. def'])。若未显式转换,Telegram 会收到空字符串或无法解析的值,从而抛出 400 Bad Request: message text is empty 错误——这正是你遇到的根本原因。
✅ 正确做法:用 .join() 合并 HTML 片段
你需要将 map() 生成的 HTML 元素数组,通过 .join('')(或 .join('
') 实现换行)拼接为单一字符串:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
User.find({ Inviter: helpers.getUserID(query) })
.then(inviters => {
console.log(inviters);
// ✅ 正确:生成 HTML 字符串数组 → 合并为单个字符串
const html = inviters.map((user, i) => {
return `${i + 1}. <code>${user._id}</code>`; // 使用 <code> 安全展示 ID
}).join('<br>'); // 每条记录换行,语义清晰且符合 HTML 模式
console.log(html); // 输出示例: "1. <code>65a1b2c3...</code><br>2. <code>65a1b2d4...</code>"
bot.sendMessage(chatID, html, {
parse_mode: 'HTML'
});
})
.catch(err => {
console.error('Failed to send user list:', err);
bot.sendMessage(chatID, '⚠️ 查询失败,请稍后重试。');
});</code>
⚠️ 关键注意事项
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










