许多用户在使用Telegram时,会遇到需要自动化监控群组消息、关键词提醒或频道内容转发的需求。例如,希望当某个群聊中出现特定关键词时,能第一时间收到通知;或者需要将某个频道的消息自动转发到自己的私人群组。这种“监听机器人”并非Telegram官方内置功能,而是需要借助第三方工具或自己编写代码来实现。本教程将手把手教你使用Python和Telegram Bot API,搭建一个基础的监听机器人,实现关键词监控与消息转发。

准备条件:注册Bot并获取Token

在开始编写代码之前,必须先拥有一个Telegram机器人账号。这是所有操作的基础。

具体操作说明:

1. 打开Telegram,在搜索框输入 @BotFather,这是Telegram官方的机器人管理账号。

2. 点击进入对话,发送命令 /newbot

3. BotFather会要求你为机器人起一个名字(如“MyMonitorBot”),然后要求设置一个用户名(必须以 bot结尾,例如“my_monitor_bot”)。

4. 创建成功后,BotFather会返回一条包含 HTTP API Token的消息,格式类似 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11。请立即复制并妥善保存这个Token,后续所有操作都需要它。

注意事项/小提示:

  • Token是机器人的唯一凭证,切勿泄露给他人,否则他人可完全控制你的机器人。
  • 用户名一旦设置不可更改,请谨慎选择。
  • 如果丢失Token,可以重新对BotFather发送 /token命令,选择对应机器人来获取新Token。

备用方案:

  • 如果不想自己编写代码,也可以使用现成的第三方监听机器人工具(如“TGMonitor”或“BotFather”推荐的其他机器人),但需注意安全性和隐私风险。
  • 若Telegram客户端无法搜索到BotFather,请先确认网络连接正常,并尝试使用官方客户端而非第三方修改版。

核心操作:编写监听机器人代码

这一步需要安装Python环境并编写脚本。如果对编程不熟悉,可以按以下步骤操作。

具体操作说明:

1. 在电脑上安装Python(建议版本3.8以上),并确保已安装 pip包管理器。

2. 打开命令行工具(Windows为CMD或PowerShell,Mac/Linux为终端),执行以下命令安装所需库:pip install python-telegram-bot

3. 创建一个新文件夹,例如“TelegramMonitor”,在其中新建一个文本文件,命名为 monitor_bot.py

4. 用记事本或任何代码编辑器打开该文件,复制以下代码并替换其中的 YOUR_BOT_TOKEN为你自己的Token:

`python

from telegram import Update

from telegram.ext import Application, MessageHandler, filters, ContextTypes

TOKEN = "YOUR_BOT_TOKEN" # 替换为你的Token

KEYWORDS = ["紧急", "通知", "测试"] # 要监听的关键词列表

async def monitor(update: Update, context: ContextTypes.DEFAULT_TYPE):

message_text = update.message.text

chat_id = update.effective_chat.id

user = update.effective_user

# 检查消息是否包含关键词

if any(keyword in message_text for keyword in KEYWORDS):

alert_text = f"监听到关键词!\n来自用户:{user.full_name}\n群组ID:{chat_id}\n消息内容:{message_text}"

# 将警报发送给机器人管理员(这里假设管理员是你的个人账号ID)

await context.bot.send_message(chat_id=YOUR_ADMIN_CHAT_ID, text=alert_text)

def main():

app = Application.builder().token(TOKEN).build()

# 监听所有文本消息

app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, monitor))

print("机器人已启动,正在监听...")

app.run_polling()

if __name__ == "__main__":

main()

`

5. 将代码中的 YOUR_ADMIN_CHAT_ID替换为你的个人Telegram账号ID。获取方法:向 @userinfobot发送任意消息,它会返回你的用户ID数字。

6. 保存文件,在命令行中进入该文件夹,执行 python monitor_bot.py启动机器人。

注意事项/小提示:

  • 代码中的 KEYWORDS列表可以按需修改,支持中文关键词。
  • 机器人启动后,不要关闭命令行窗口,否则机器人会停止运行。
  • 如果出现“No module named 'telegram'”错误,说明未正确安装库,请重新执行pip命令。

备用方案:

  • 如果不想使用Python,也可以使用Node.js的 node-telegram-bot-api库编写类似功能。
  • 对于完全不懂编程的用户,可考虑使用 IFTTTZapier等自动化平台,但需要Telegram Premium账号支持。

验证结果:测试监听功能是否正常工作

代码运行后,必须进行实际测试以确保机器人能正确监听并发送警报。

具体操作说明:

1. 确保机器人已经在命令行中成功启动,输出显示“机器人已启动,正在监听...”。

2. 打开Telegram,将你的机器人添加到任意一个群组(需要群组管理员权限),或者直接与机器人私聊。

3. 在群组或私聊中发送一条包含关键词的消息,例如“今天有紧急通知”。

4. 几秒钟内,你应该会收到机器人发来的私聊消息,内容包含监听到的关键词、发送者和群组ID。

5. 如果机器人没有反应,请检查命令行窗口是否有错误提示(如Token错误或网络问题)。

注意事项/小提示:

  • 机器人只有在群组中拥有 读取消息权限才能监听到消息。请确保机器人被设置为管理员(至少赋予“发送消息”和“读取消息”权限)。
  • 如果测试时机器人无响应,首先确认是否在代码中正确设置了 YOUR_ADMIN_CHAT_ID
  • 建议使用另一个账号或小号进行测试,避免干扰正常对话。

备用方案:

  • 如果机器人只回复私聊而不响应群组消息,请检查代码中的过滤器是否排除了群组消息。可尝试将 filters.TEXT改为 filters.ALL进行测试。
  • 若机器人完全无反应,尝试重启代码,并检查网络代理设置是否影响了Telegram API的连接。

备用处理:让机器人持续运行与错误排查

普通的命令行窗口关闭后机器人就会停止,因此需要将其部署到长期运行的服务器或云服务上。

具体操作说明:

1. 本地持续运行方案:在Windows上,可以将Python脚本打包成 .exe文件(使用 pyinstaller),然后设置为开机自启。在Mac/Linux上,可以使用 nohup命令:nohup python monitor_bot.py &

2. 云服务器部署:购买一台低配云服务器(如阿里云、腾讯云、AWS的免费套餐),安装Python环境后上传脚本,使用 screentmux保持会话。

3. 常见错误处理

- 错误“Chat not found”:检查是否将机器人添加到了正确的群组或频道。

- 错误“Forbidden: bot was kicked from the supergroup”:机器人被踢出群组,需重新添加。

- 错误“Timed out”:网络不稳定,尝试更换代理或重启脚本。

注意事项/小提示:

  • 云服务器部署时,建议使用 systemd服务管理,确保机器人崩溃后自动重启。
  • 如果机器人需要监听多个群组,可以在代码中遍历群组ID列表,或使用数据库存储配置。
  • 定期检查机器人日志,避免因API限频导致功能失效。

备用方案:

  • 免费云服务如 PythonAnywhereHeroku支持部署Python应用,但需注意免费套餐有运行时间限制。
  • 使用 Docker容器化部署,可简化环境配置和迁移。

常见问题补充

问:机器人只能监听文本消息吗?能否监听图片或文件?

答:可以。在代码中修改过滤器即可,例如使用 filters.PHOTO监听图片,或使用 filters.Document监听文件。但需要额外处理文件下载和内容识别,较为复杂。

问:如何让机器人只监听特定群组,而不是所有群组?

答:在 monitor函数中添加判断条件,例如 if chat_id == YOUR_TARGET_GROUP_ID:,只处理指定群组的消息。群组ID可以通过 @getidsbot获取。

问:机器人一天能处理多少消息?会被限制吗?

答:Telegram Bot API 有速率限制,大约每秒30条消息。如果监听大量群组,建议使用 异步处理消息队列优化性能。

问:我不想自己写代码,有没有现成的监听机器人推荐?

答:搜索 @TGMonitorBot@WatchDogRobot等第三方机器人,但请注意它们可能收集你的数据,且功能可能有限。建议优先学习本教程的自建方案。

总结:通过注册Bot、编写Python脚本并部署运行,你可以轻松搭建一个自定义关键词的Telegram监听机器人,实现消息监控与自动提醒。