如何通过编程方式回复Telegram机器人?Telegram API/JavaScript实现指引
编程方式回复Telegram机器人(Telegram API/JavaScript实现)
核心逻辑
编程回复Telegram机器人,本质是通过Telegram提供的API向目标机器人的对话窗口发送消息。如果需要针对性回复某条特定消息,需额外指定该消息的message_id参数。
必备准备
- 自行创建Telegram机器人:通过@BotFather完成注册,获取专属
API_TOKEN - 获取目标机器人的
chat_id:给目标机器人发一条消息后,调用getUpdates接口即可提取该ID,也可通过@userinfobot查询
直接调用Telegram Bot API
Telegram Bot API提供sendMessage接口,用于发送消息,支持回复指定消息:
基础请求格式(POST)
https://api.telegram.org/bot<API_TOKEN>/sendMessage
关键请求参数
chat_id: 目标机器人的对话ID(支持数字ID或@用户名)text: 要发送的消息内容reply_to_message_id: 可选参数,填入需回复的消息ID,实现“回复”动作
curl示例请求
curl -X POST https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage \ -d chat_id="123456789" \ -d text="这是给你的回复内容" \ -d reply_to_message_id="98765"
JavaScript实现(Node.js环境)
方式1:原生fetch调用(无第三方依赖)
直接通过HTTP请求调用API,无需额外安装库:
const API_TOKEN = '你的机器人API_TOKEN'; const TARGET_CHAT_ID = '目标机器人的chat_id'; const REPLY_MESSAGE_ID = '需回复的消息ID(可选)'; async function sendReply() { const url = `https://api.telegram.org/bot${API_TOKEN}/sendMessage`; const payload = { chat_id: TARGET_CHAT_ID, text: '通过JavaScript发送的回复', ...(REPLY_MESSAGE_ID && { reply_to_message_id: REPLY_MESSAGE_ID }) }; try { const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }); const result = await response.json(); console.log('消息发送成功:', result); } catch (error) { console.error('发送失败:', error); } } sendReply();
方式2:使用第三方库node-telegram-bot-api
该库封装了Bot API,调用更简洁:
- 安装依赖
npm install node-telegram-bot-api
- 代码示例
const TelegramBot = require('node-telegram-bot-api'); const API_TOKEN = '你的机器人API_TOKEN'; const TARGET_CHAT_ID = '目标机器人的chat_id'; const REPLY_MESSAGE_ID = '需回复的消息ID(可选)'; const bot = new TelegramBot(API_TOKEN, { polling: false }); async function sendReply() { try { await bot.sendMessage(TARGET_CHAT_ID, '通过第三方库发送的回复', { reply_to_message_id: REPLY_MESSAGE_ID }); console.log('回复发送成功'); } catch (error) { console.error('发送失败:', error); } } sendReply();
注意事项
- 确保机器人的
API_TOKEN正确且机器人处于正常状态 chat_id需为目标机器人的有效对话ID,使用@用户名时需确认对方机器人已设置公开用户名- 若要回复特定消息,需先通过
getUpdates接口或消息监听事件获取目标消息的message_id
内容的提问来源于stack exchange,提问作者taftaf2007
相关产品推荐
相关产品推荐

