Telegram Bot API快速入门:创建机器人并实现自动回复

本文是Telegram Bot API的入门教程,涵盖通过BotFather创建机器人、获取Token、调用API、发送消息等核心操作,帮助开发者快速上手机器人开发。

阅读提示建议先浏览小标题,再根据需要深入阅读具体段落。

Telegram Bot API 是 Telegram 为开发者提供的强大接口,通过它你可以创建自动回复、消息推送、定时任务等各类机器人。无论是个人工具还是商业应用,Bot 都能显著提升效率。本文将带你从零开始,完成 Bot 的创建、配置与首次调用,快速掌握 Bot API 的核心用法。

什么是 Telegram Bot?

Telegram Bot 是运行在 Telegram 平台上的自动账号,它由用户通过 BotFather 创建,并由开发者通过 Bot API 进行控制。Bot 可以主动给用户发送消息、在群组中响应指令、处理多媒体文件等。与普通账号不同,Bot 无法主动发起对话,只能对用户发起的交互进行响应,但通过 API 可以实现更灵活的逻辑。

第一步:通过 BotFather 创建你的机器人

  1. 打开 Telegram,在搜索框中查找 @BotFather 并进入对话。
  2. 发送命令 /newbot,BotFather 会引导你完成创建流程。
  3. 为你的机器人设置一个显示名称,例如“我的助手”。
  4. 设置一个唯一用户名,必须以 bot 结尾,如 my_first_bot
  5. 创建成功后,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,但实际开发中通常会使用编程语言封装好的库,以提高效率。以下两个库非常流行:

  • Pythonpython-telegram-bot,文档完善,支持异步。
  • Node.jsnode-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中文官网,获取更多开发者资源和实时更新。

FAQ

多平台客户端选择

常见问题

如何获得 Telegram Bot 的 API Token?

在 Telegram 中与 @BotFather 对话,发送 /newbot 并按提示设置名称和用户名,创建成功后 BotFather 会返回 API Token。请妥善保存,不要泄露。

如果 API Token 泄露了应该怎么办?

立即在 BotFather 中发送 /revoke 命令重置 Token,然后使用新 Token 更新你的所有代码和配置。同时检查 Bot 是否有异常行为。

Bot 如何获取用户发送的消息?

可以通过轮询(getUpdates 方法)或设置 Webhook 两种方式。轮询适合开发测试,Webhook 适合生产环境,Telegram 会在有新消息时主动 POST 到你的服务器。

Bot 能在群组中自动回复吗?

可以。将 Bot 加入群组后,如果启用了隐私模式,它只会收到命令和提及它的消息;关闭隐私模式后可以接收所有群消息,从而进行自动回复。需要在 BotFather 中设置相应权限,并在代码中处理对应逻辑。