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

如何在Node.js中用GramJS将HTML/Markdown转为Telegram API文本+实体

在Node.js(GramJS框架)中将HTML转换为Telegram带实体的消息

Telegram官方文档仅提供了C++和PHP的实体转换示例,在Node.js环境下使用GramJS框架时,无需手动计算消息实体的偏移量和长度,框架内置的工具类可以直接完成HTML到Telegram消息格式的转换。

实现方法

GramJS提供了HtmlFormat工具类,专门用于解析HTML内容并生成符合Telegram API要求的纯文本消息和实体数组。

完整代码示例

const { Api, TelegramClient } = require('telegram');
const { HtmlFormat } = require('telegram/client/messageParse');

// 假设已完成TelegramClient的初始化(含登录授权)
async function sendHtmlFormattedMessage() {
  // 待转换的HTML内容
  const htmlContent = '<b>bold</b> sample';
  
  // 解析HTML,得到纯文本和对应的实体数组
  const { text, entities } = HtmlFormat.parse(htmlContent);
  
  // 调用Telegram API发送消息
  const result = await client.invoke(
    new Api.messages.SendMessage({
      peer: '@username',
      message: text,
      entities: entities,
    }),
  );
  
  console.log('消息发送结果:', result);
}

// 执行发送函数
sendHtmlFormattedMessage();

说明

  • HtmlFormat.parse()会自动识别常见的HTML标签(如<b>、<i>、<u>、<a>等),并转换为对应的Telegram消息实体(如MessageEntityBold、MessageEntityItalic等)。
  • 该方法会自动处理偏移量(offset)和长度(length)的计算,无需手动编写这部分逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:40:02