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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:42:03