在使用Telegram桌面版时,很多用户希望将某些频道或群组中包含特定关键词的消息自动转发到指定位置,例如自己的“已保存消息”或另一个群组。遗憾的是,Telegram官方客户端并没有直接提供“关键词自动转发”的开关。不过这并不意味着我们无法实现这一需求——通过一些技术手段和第三方工具,你完全可以打造属于自己的消息自动转发系统。本文将为你提供三种经过验证的解决方案,其中第一种方法(基于Telethon脚本)最为灵活和强大。
自动转发的常见应用场景
自动转发特定关键词的消息可以极大提升信息处理效率,常见场景包括:
- 抓取招聘信息:从多个招聘群中筛选包含“Java”或“远程”的关键词,自动转发到自己的草稿箱
- 监控优惠信息:在购物群中自动提取“折扣”或“限时”类消息,集中管理
- 舆情收集:对行业群里涉及“公司名”或“新政策”的讨论进行自动归档
- 个人工作流:将特定客户发来的消息自动转发给团队协作群
无论你的具体需求是什么,下面的方法都能帮助你摆脱手动转发的重复劳动。
方法一:使用Telethon脚本实现(推荐)
Telethon是基于Telegram官方API的Python客户端库,可以模拟用户客户端并监听消息。这是目前最稳定、可定制化的方式,适合有一定编程基础的用户。
第1步:申请API ID和API Hash
- 访问my.telegram.org,使用你的手机号登录并完成验证。
- 点击“API development tools”,填写应用名称(随意)和平台(如“Desktop”),然后创建应用。
- 在“App api_id”和“App api_hash”处复制并妥善保存这两个值,后面会用到。
第2步:安装Python和Telethon
确保你的电脑已安装Python 3.7及以上版本,然后打开终端或命令提示符,运行:
pip install telethon第3步:编写自动转发脚本
新建一个Python文件(例如 auto_forward.py),复制以下代码,并替换其中的api_id、api_hash、关键词列表以及目标聊天:
from telethon import TelegramClient, events
api_id = 123456 # 替换为你的api_id
api_hash = 'abcdef1234567890' # 替换为你的api_hash
client = TelegramClient('my_session', api_id, api_hash)
# 要监听的关键词列表
keywords = ['招聘', 'Python']
# 目标聊天:可以是用户、群组或自己的“已保存消息”
# 例如:'me' 表示“已保存消息”,'@username' 表示某用户或公开群组
target_chat = 'me'
@client.on(events.NewMessage)
async def handler(event):
# 不处理自己发送的消息
if event.out:
return
message_text = event.message.text or ''
if any(keyword in message_text for keyword in keywords):
# 直接转发原文(保留发送者信息)
await event.message.forward_to(target_chat)
# 或者只发送文本:await client.send_message(target_chat, message_text)
print('监听已启动...')
client.start()
client.run_until_disconnected()
说明:
target_chat = 'me'将命中的消息发送到你的“已保存消息”,方便统一查看。- 如果你希望转发到某个群组,请填写群组的用户名(公开群)或通过实体ID指定(私密群将在首次运行时自动同步)。
- 如果想监听特定聊天而不是全局,可以在
events.NewMessage(chats=['目标聊天'])中过滤。
第4步:运行脚本
在终端中执行:
python auto_forward.py首次运行会要求输入手机号并通过验证码登录(若开启了双重验证,还需输入密码)。登录成功后,脚本会保持运行,在后台持续监听新消息。你可以用 Ctrl+C 停止。
让脚本持续运行的技巧
由于脚本需要保持在线,你可以使用以下方式在服务器或本地后台运行:
- Linux/macOS:使用
nohup python auto_forward.py &或systemd服务 - Windows:使用任务计划程序在开机时启动脚本,或直接使用“后台运行”工具
方法二:使用现成的开源工具
如果不想写代码,可以试试GitHub上的开源项目,如 telegram-auto-forward 等。这些工具通常提供配置文件(JSON)来设置监听聊天、关键词和目标位置。用法一般如下:
- 下载并安装依赖(需要Python环境)
- 在配置文件中填入API ID、Hash及规则
- 运行启动脚本
这类工具的优势是无需自己编写逻辑,但你需要检查项目是否持续维护,并注意安全风险(不要在陌生设备上使用来历不明的脚本)。
方法三:借助第三方自动化平台(无需编程)
如果你不想接触代码,也可以利用Zapier或Make(原Integromat)这类自动化工具。前提是你需要先创建一个Telegram Bot,并获取Bot Token。以Zapier为例:
- 创建Telegram Bot(联系 BotFather)
- 在Zapier中添加Telegram触发步骤(如“New Message”),选择你的Bot
- 设置过滤条件:在“Filter”步骤中判断消息文本是否包含关键词
- 添加动作:连接到Telegram应用,发送消息到指定聊天
注意:这种方式需要源消息发送给你的Bot(如将Bot添加到源群组并提权),且Zapier的免费版有每月任务限制。对于高频场景,还是建议用Telethon脚本。
注意事项与常见问题
账号安全
使用Telethon登录时,你的账号需要保持在线,请避免在公用电脑上使用该方案。同时,请从官方渠道下载Telegram客户端,并定期检查登录设备列表,防止异常。建议在脚本中设置日志记录以便追踪。
媒体消息处理
上述示例仅处理文本消息。如需自动转发图片、视频、文件等媒体,需要扩展代码以监听 event.message.media 并下载后转发,或直接使用 forward_to(它原本就会保留媒体内容和元数据)。
高频触发与封号风险
Telegram对群发和自动化操作有一定的频率限制。如果短时间内大量转发,可能被限制。请合理设置关键词,避免过于宽泛,并控制触发节奏。
无法监听频道消息
Telethon作为用户客户端,可以监听你已加入的频道消息,无需Bot权限。但是,如果频道启用了“自动订阅评论”等限制,你需要确保账号已正常接收消息。
总结
虽然Telegram桌面版没有原生提供关键词自动转发功能,但通过本文介绍的方法——无论是使用Telethon脚本、现成工具还是Zapier——你都能轻松构建自己的自动化消息中继站。对于大多数用户来说,基于Telethon的脚本是最推荐的方式,因为它灵活、免费且完全掌控在自己手中。希望这份指南能真正帮你解决需求,让Telegram成为更高效的工作助手。