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

新手Node-RED调用Telegram接口遇msg.payload.type为空错误求助

解决Node-RED Telegram节点报错“msg.payload.type is empty”(MQTT数据场景)

问题原因

你当前的代码直接在原msg.payload上添加属性,但MQTT节点输出的msg.payload通常是基础类型(数字/纯字符串),这类类型无法直接添加type/chatId等属性,导致Telegram节点识别不到必填的type字段。而inject节点因为你设置的输出可能是对象类型,所以能临时正常工作。
另外,你代码里用了中文引号(“”),这会导致语法错误,必须换成英文引号("")。

修复后的Function节点代码

// 提取MQTT传来的温度数据,兼容数字/字符串类型
var tempValue = msg.payload;
// 拼接温度单位
var tempContent = tempValue + " °C";
// 重新构造符合Telegram节点要求的payload对象
msg.payload = {
    type: "message",
    chatId: "xxxxxxxxxx", // 替换成你的实际ChatID
    content: tempContent
};
return msg;

额外检查项

  • 在MQTT节点和Function节点之间加一个Debug节点,查看msg.payload的实际类型(数字/字符串/JSON),确保tempValue能正确读取
  • 确认Telegram节点已正确配置Bot Token,排除其他隐藏问题

内容的提问来源于stack exchange,提问作者Shaun Fisher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:51:04