为什么需要关键词过滤机器人?
在Telegram群组中,随着成员增多,广告、辱骂、敏感内容等违规消息频繁出现,不仅破坏讨论氛围,还可能带来封群风险。手动删除耗时费力,而Telegram Bot API提供了消息监听与删除能力,让我们可以轻松构建一个关键词过滤机器人,实现自动识别并删除违规消息,维护群组秩序。
准备工作:创建机器人与获取Token
首先,在Telegram中向@BotFather发送/newbot,按照提示设置昵称和用户名,即可获取API Token。请注意,Token是机器人的唯一凭证,需妥善保管,不要泄露给无关人员。
理解消息更新与权限模型
机器人通过长轮询(Long Polling)或Webhook接收群组中的消息更新。在群组中,机器人需要被设置为管理员,并具备“删除消息”权限,才能执行删除操作。权限不足时,调用deleteMessage会返回403错误。
实现关键词过滤核心逻辑
我们以Python的python-telegram-bot库为例。核心思路是:监听所有群组消息,对文本内容进行关键词匹配,若命中则执行删除并可选通知管理员。
import logging
from telegram import Update, Bot
from telegram.ext import Application, MessageHandler, filters, ContextTypes
# 关键词列表,可按需扩展
KEYWORDS = ["广告\u0026#34;, \"赌博\u0026#34;, \"色情\u0026#34;]
async def filter_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
msg = update.message
if not msg or not msg.text:
return
# 检查是否包含关键词
for kw in KEYWORDS:
if kw in msg.text:
try:
await msg.delete()
await context.bot.send_message(
chat_id=msg.chat_id,
text=f"已删除违规消息: {msg.from_user.first_name} 的消息触发关键词 "
)
except Exception as e:
logging.error(f"删除失败: ")
break
def main():
app = Application.builder().token("YOUR_TOKEN").build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, filter_message))
app.run_polling()
if __name__ == "__main__":
main()自动删除违规消息:调用deleteMessage
在上面的代码中,await msg.delete()即调用了deleteMessage方法。注意:机器人必须拥有删除消息的管理员权限,且消息不能太旧(Telegram限制机器人只能删除48小时内的消息)。如果删除失败,请检查机器人权限以及网络状态。
进阶:正则匹配与白名单机制
简单关键词匹配容易误伤或遗漏。使用正则表达式可以实现更灵活的过滤规则,例如匹配拼音、谐音或加符号绕过的变体。同时,设置白名单用户或管理员,他们的消息不受过滤,避免误删正常讨论。
import re
# 正则匹配模式(示例:匹配广告变体)
PATTERNS = [r"\b(广告|a?d)\b", r"(加|vx|微信|q)\s*号"]
WHITELIST_IDS = [123456789] # 不受过滤的用户ID
async def filter_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
msg = update.message
if not msg or not msg.text:
return
if msg.from_user.id in WHITELIST_IDS:
return
for pattern in PATTERNS:
if re.search(pattern, msg.text, re.I):
await msg.delete()
break部署与长期运行建议
将脚本部署到云服务器或使用Heroku、Docker等方式保持7×24小时运行。注意使用time.sleep或调度工具避免频繁轮询被限流。建议记录日志,并定期更新关键词库以应对变化。
总结
通过Telegram机器人实现关键词过滤与自动删除,能有效减少人工管理成本,提升群组质量。本文提供了最小可运行的示例代码,你可以在此基础上扩展更复杂的规则,比如图片OCR、敏感链接识别等。记住:合理使用权限,避免误删,才能让机器人真正成为群组管理的得力助手。