如何用Node.js结合Telegram Bot API实现点击文本复制功能
在Node.js中实现Telegram机器人发送点击可复制文本
下面针对Node.js环境下两种常用的Telegram机器人开发库,给出具体实现方案:
1. 使用node-telegram-bot-api库
- 先安装依赖:
npm install node-telegram-bot-api - 核心是通过指定消息解析模式,将需要复制的文本用行内代码格式包裹,示例代码:
const TelegramBot = require('node-telegram-bot-api'); const botToken = '你的机器人令牌'; const bot = new TelegramBot(botToken, { polling: true }); // 监听/gettoken命令 bot.onText(/\/gettoken/, (msg) => { const chatId = msg.chat.id; // 用MarkdownV2格式,反引号包裹的文本会变成点击可复制样式 const copyableText = `\`你的专属令牌或需要复制的文本\``; bot.sendMessage(chatId, copyableText, { parse_mode: 'MarkdownV2' }); // 也可以用HTML格式,用<code>标签包裹 // const copyableTextHtml = `<code>你的专属令牌或需要复制的文本</code>`; // bot.sendMessage(chatId, copyableTextHtml, { parse_mode: 'HTML' }); }); - 注意:如果用MarkdownV2格式,文本里的特殊字符(比如
_、*、[等)需要转义,避免解析错误。
2. 使用Telegraf库
- 先安装依赖:
npm install telegraf - 实现代码示例:
const { Telegraf } = require('telegraf'); const bot = new Telegraf('你的机器人令牌'); // 处理/gettoken命令 bot.command('gettoken', (ctx) => { // MarkdownV2格式发送点击可复制文本 ctx.reply(`\`你的专属令牌或需要复制的文本\``, { parse_mode: 'MarkdownV2' }); // 或者用HTML格式 // ctx.reply('<code>你的专属令牌或需要复制的文本</code>', { parse_mode: 'HTML' }); }); bot.launch();
原理说明
Telegram对行内代码格式(Markdown的包裹、HTML的<code>标签)的渲染逻辑就是点击文本即可自动复制到剪贴板,和@BotFather发送令牌的效果完全一致。
内容的提问来源于stack exchange,提问作者Maki Maki
相关产品推荐
相关产品推荐

