如何在Telegraf-NodeJS中通过消息ID获取机器人发送的消息文本?
读取Telegraf已发送频道消息文本的方案
直接利用Telegraf封装的Telegram Bot API方法getMessage,传入频道ID和你保存的消息ID,就能获取到消息的原始文本,无需额外存储。
示例代码
// 假设已保存频道ID(chatId)和目标消息ID(messageId) async function fetchMessageText(chatId, messageId) { try { const targetMessage = await ctx.telegram.getMessage(chatId, messageId); // 纯文本消息取text字段,带媒体的消息取caption字段 return targetMessage.text || targetMessage.caption || ''; } catch (err) { console.error('获取消息内容失败:', err); return null; } }
关键注意点
- 机器人必须在目标频道中拥有管理员权限,且开启「读取消息」权限,否则会返回权限错误。
- 如果消息已被删除,调用会抛出异常,需要在代码中做捕获处理。
- 针对不同类型的消息(纯文本、带媒体的消息),要分别读取
text或caption字段来获取内容。
内容的提问来源于stack exchange,提问作者Scarpia999
相关产品推荐
相关产品推荐

