Telegram Bot API 是 Telegram 为开发者提供的强大接口,通过它你可以创建自动回复、消息推送、定时任务等各类机器人。无论是个人工具还是商业应用,Bot 都能显著提升效率。本文将带你从零开始,完成 Bot 的创建、配置与首次调用,快速掌握 Bot API 的核心用法。
什么是 Telegram Bot?
Telegram Bot 是运行在 Telegram 平台上的自动账号,它由用户通过 BotFather 创建,并由开发者通过 Bot API 进行控制。Bot 可以主动给用户发送消息、在群组中响应指令、处理多媒体文件等。与普通账号不同,Bot 无法主动发起对话,只能对用户发起的交互进行响应,但通过 API 可以实现更灵活的逻辑。
第一步:通过 BotFather 创建你的机器人
- 打开 Telegram,在搜索框中查找 @BotFather 并进入对话。
- 发送命令
/newbot,BotFather 会引导你完成创建流程。 - 为你的机器人设置一个显示名称,例如“我的助手”。
- 设置一个唯一用户名,必须以
bot结尾,如my_first_bot。 - 创建成功后,BotFather 会返回一个 API Token(形如
123456:ABC-DEF...),这是控制机器人的唯一凭证,请务必妥善保存。
如果你忘记了 Token,可以在 BotFather 中使用 /token 命令重新获取,但为了安全,建议定期更换。
第二步:了解 Bot API 的基础
Bot API 的所有请求都发送至 https://api.telegram.org/bot<token>/METHOD_NAME,其中 <token> 是你的 API Token,METHOD_NAME 是具体的 API 方法名称。支持 HTTP GET 和 POST 请求,返回格式始终为 JSON。下面的例子使用 curl 调用 getMe 方法来验证 Token 是否有效:
curl https://api.telegram.org/bot123456:ABC-DEF.../getMe如果一切正常,你将看到类似以下的 JSON 响应,其中包含机器人的基本信息:
{"ok":true,"result":{"id":123456789,"is_bot":true,"first_name":"我的助手","username":"my_first_bot"}}第三步:使用 curl 发送第一条消息
要发送消息,你需要知道接收者的 chat_id。最简单的方法是:先给你的机器人发一条消息,然后通过 getUpdates 方法获取最近更新,从中提取 chat.id。下面是一个完整的发送消息示例:
curl -X POST "https://api.telegram.org/bot123456:ABC-DEF.../sendMessage" -d "chat_id=123456789&text=你好,我是机器人!"在响应中,你会看到返回的消息对象,包括消息 ID、发送时间等。通过组合不同方法,你可以实现各种自动回复逻辑。
第四步:常用功能扩展
除了 sendMessage,Bot API 还提供大量其他方法:
- 发送图片:
sendPhoto,支持本地文件或 URL。 - 发送文件:
sendDocument,用于传输文档、压缩包等。 - 设置命令菜单:
setMyCommands,让用户输入/时看到预设指令。 - 接收用户消息:使用
getUpdates轮询或设置Webhook。对于入门,推荐先使用getUpdates了解原理。
例如,通过 getUpdates 可以获取用户发给机器人的所有消息,配合条件判断即可实现简单问答。
安全与权限注意事项
在使用 Bot API 时,安全至关重要:
- 保护 Token:Token 相当于机器人密码,切勿在客户端代码或公开渠道泄露。如果泄露,请立即在 BotFather 中执行
/revoke重置。 - 设置权限:在 BotFather 的命令中,可以设置 Bot 是否允许加入群组、是否开启隐私模式等。根据用途合理配置。
- 使用 Webhook 时的安全:确保 Webhook 地址使用 HTTPS,并验证请求来源,防止伪造请求。
下一步:用编程语言开发 Bot
虽然通过 curl 可以调用 API,但实际开发中通常会使用编程语言封装好的库,以提高效率。以下两个库非常流行:
- Python:
python-telegram-bot,文档完善,支持异步。 - Node.js:
node-telegram-bot-api,适合 JavaScript 开发者。
以 Python 为例,一个发送消息的脚本只需几行代码:
import telegrambot = telegram.Bot(token="你的token")bot.send_message(chat_id="123456789", text="Hello from Python!")你可以在此基础上构建更复杂的功能,例如命令处理器、键盘按钮、状态机等。
总结
学习 Bot API 是开发 Telegram 自动化工具的第一步。通过本文的入门,你已经能够创建 Bot 并调用基础 API。继续深入学习,你可以构建更复杂的功能,如键盘交互、会话状态等。关注 Telegram中文官网,获取更多开发者资源和实时更新。