引言
Telegram机器人(Bot)是自动化交互的重要工具,而发送消息是机器人最核心的功能。无论你是想实现通知推送、自动回复,还是定时消息,都需要掌握Telegram机器人发送消息的方法。本文将通过最直接的示例,带你从基础到进阶,快速学会使用Bot API发送消息。
一、准备工作:获取Bot Token和Chat ID
在发送消息之前,你需要两样关键信息:Bot Token和Chat ID。
- 获取Bot Token:通过
@BotFather创建机器人后,即可获得一串形如123456:ABC-DEF...的令牌。这是调用API的唯一凭证。具体步骤可参考站内《Telegram机器人获取Token完整步骤》。 - 获取Chat ID:要发送消息到某个用户或群组,需要知道对方的Chat ID。最简单的获取方式:将机器人加入群组或私聊,然后访问
https://api.telegram.org/bot<你的Token>/getUpdates,在响应的JSON中找到message.chat.id字段。
二、核心API:sendMessage方法详解
Telegram Bot API提供了 sendMessage 方法用于发送文本消息。其基础请求格式为:
https://api.telegram.org/bot<BOT_TOKEN>/sendMessage必须参数包括:
chat_id:接收者的唯一标识(用户ID或群组ID)。text:要发送的文本内容,最大4096字符。
常用可选参数:
parse_mode:支持HTML或MarkdownV2,用于格式化消息。disable_web_page_preview:设为true可关闭链接预览。reply_to_message_id:回复某条消息时使用。
三、Python示例:使用requests库发送消息
Python是开发Telegram机器人最常用的语言。以下示例演示了如何使用 requests 库发送消息:
import requests
BOT_TOKEN = "你的BOT_TOKEN"
CHAT_ID = "接收者的CHAT_ID"
url = f"https://api.telegram.org/bot/sendMessage"
params = {
"chat_id": CHAT_ID,
"text": "你好,这是来自Telegram机器人的消息!",
"parse_mode": "HTML"
}
response = requests.post(url, json=params)
print(response.json())如果返回 {"ok": true, ...} 则发送成功。你还可以将代码封装成函数,方便复用。
四、Node.js示例:使用axios发送消息
对于JavaScript开发者,可以使用 axios 或 node-fetch 实现同样的功能。以下是一个简单的Node.js示例:
const axios = require('axios');
const BOT_TOKEN = '你的BOT_TOKEN';
const CHAT_ID = '接收者的CHAT_ID';
const url = `https://api.telegram.org/bot$/sendMessage`;
const params = {
chat_id: CHAT_ID,
text: 'Hello from Node.js'
};
axios.post(url, params)
.then(response => console.log(response.data))
.catch(error => console.error(error));五、常见错误及解决方案
在实际开发中,你可能遇到以下错误:
- 401 Unauthorized:Token错误或已失效。检查Token是否复制完整。
- 400 Bad Request:参数错误,比如Chat ID格式不正确或text为空。
- 429 Too Many Requests:发送频率过快,触发限频。需要加入等待或使用
sleep控制。
建议在代码中捕获异常,并打印响应日志,便于调试。
六、发送消息的最佳实践
- 使用HTTPS:确保所有请求通过HTTPS发送,保障数据传输安全。
- 设置超时:在HTTP客户端中设置超时时间,避免无限等待。
- 控制发送频率:Telegram既有限频策略,避免频繁调用,尽量使用批量发送或合并消息。
- 设置Parse Mode:需要加粗、斜体或链接时,使用
HTML或MarkdownV2,提高可读性。
总结
通过本文的示例,你已经学会了如何通过HTTP请求和多种编程语言实现Telegram机器人发送消息。核心就是掌握 sendMessage 接口的调用方式,并获取正确的Token和Chat ID。接下来,你可以在此基础上添加更多功能,如图片发送、键盘按钮等。持续关注本站的机器人开发教程,获取更多实战技巧。