为什么需要关键词自动回复?
在Telegram群组或频道中,成员常提出重复问题,手动回复效率低下。通过机器人实现关键词自动回复,可秒回常见问题、过滤垃圾信息、自动引导用户,极大提升管理效率。本教程将带您从零创建一个具备关键词回复能力的Telegram机器人,无需复杂基础,跟着步骤操作即可。
准备工作:创建机器人与获取Token
首先,您需要Telegram账号。与@BotFather对话创建新机器人:
- 发送
/newbot命令。 - 按提示输入机器人显示名称(如
MyKeywordBot)。 - 输入唯一的用户名,必须以
bot结尾(如MyKeywordReplyBot)。 - 创建成功后,BotFather会返回一个HTTP API Token,形如
123456789:AAF-xxxx,请妥善保存。
同时,在BotFather中使用 /setprivacy 关闭隐私模式(设置为Disabled),这样机器人才能读取群组中所有消息(而不仅仅是命令),这是关键词自动回复的关键。
编写关键词回复代码(Python示例)
下面使用 python-telegram-bot 库实现最简版本。先安装:pip install python-telegram-bot --upgrade
from telegram.ext import Application, MessageHandler, filters
import re
TOKEN = "YOUR_BOT_TOKEN"
# 定义关键词与回复映射
keyword_replies = {
"价格": "我们的产品定价为99元/月,点击 /price 查看详情。",
"地址": "公司地址:北京市朝阳区XX路XX号,导航请回复“地图”。",
"人工": "如需人工客服,请拨打400-888-8888。"
}
async def handle_message(update, context):
text = update.message.text
if not text:
return
lower_text = text.lower()
for keyword, reply in keyword_replies.items():
if keyword.lower() in lower_text:
await update.message.reply_text(reply)
return # 只回复第一个匹配
def main():
app = Application.builder().token(TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
app.run_polling()
if __name__ == "__main__":
main()将 YOUR_BOT_TOKEN 替换为您的Token,运行脚本,机器人即开始监听。在群组中发送包含“价格”的消息,机器人会自动回复。
进阶:正则表达式与模糊匹配
简单包含匹配容易误触发,例如“假价格”也会触发。使用正则可精确匹配:
import re
pattern_map = {
re.compile(r"价格\s*是?"): "价格信息...",
re.compile(r"怎么联系|人工客服"): "客服电话..."
}
for pattern, reply in pattern_map.items():
if pattern.search(text):
await update.message.reply_text(reply)
return还可以借助 difflib 实现近似匹配,处理用户拼写错误或口语化表达。
群组管理:权限与防骚扰
在群组中,机器人默认只能回复提及它的消息。要允许机器人回复所有消息,除了关闭隐私模式,还需在群组中将机器人设为管理员(至少授予“删除消息”权限)。此外,可以设置回复频率限制,避免机器人被刷屏:
# 简单限速:同一用户60秒内只回复一次
from datetime import datetime, timedelta
last_reply = {}
if user_id in last_reply and datetime.now() - last_reply[user_id] < timedelta(seconds=60):
return
last_reply[user_id] = datetime.now()部署与运维建议
- 使用Webhook模式:生产环境建议用Webhook替代长轮询,响应更快且节省资源。
- 日志监控:记录每次触发的关键词和回复,便于优化关键词库。
- 关键词分组:将大量关键词导入数据库或配置文件,方便非开发者维护。
总结
通过以上步骤,您已成功搭建一个Telegram关键词自动回复机器人。无论是客户支持、群组管理还是趣味互动,都能轻松应对。建议先小范围测试,逐步优化关键词覆盖与回复文案。如需更复杂的功能(如状态机、菜单按钮),可在 python-telegram-bot 官方文档中找到更多扩展。