如何在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
相关产品推荐
相关产品推荐

