Telegram 中最有趣的东西就是 Bot 了,但它也是最烦人的,因为我的群组最近每天都会遭到 20-30 个发广告的入群,它们进来后就直接改名发广告,严重影响了正常的群聊环境。我是在是忍无可忍,索性自己也做个 Bot ,来以暴制暴!
很早就有人建议我给群组加上验证,但别人托管的 Bot 我总觉得不放心,鬼知道会不会做什么伤天害理的事情,比如某信号旗事件。所以我就自己用 Python 写了一个简单的入群验证 Bot 。
使用效果展示:(视频在 YouTube)
它的功能很简单,就是有新人入群对其进行验证请求,在规定时间内未完成验证或连续两次验证错误就踢出群组。验证方法我采用的是发送图片到群组,让需要验证的人点击正确的答案即可。
其实 Telegram 的 API 做的非常的细致,几乎所有的东西都能够通过 API 来操作,本文中的 Bot 已经在 GitHub 开源了,地址:https://github.com/SaltyLeo/telegram-simple-captcha-bot
代码部分我就不赘述了,我就讲讲主要逻辑吧。
用户入群操作 ↓ 机器人检测到新入群信息,删除入群信息,关闭新入群用户发送信息的权限。 ↓ 生成图片验证码,将混淆字符混入待验证字段,一并发送到群组。 ↓ 等待用户点击验证,如90秒未收到响应,删除验证信息,将待验证用户永久封禁。 ↓ 收到回复,检查是否一致,与验证码不一致。首次验证错误将提示“验证错误还剩余一次机会”,第二次验证错误bot将删除验证信息,将待验证用户永久封禁。 ↓ 收到回复,与验证码一致,删除验证信息,给待验证用户添加权限。
如果上面的逻辑都看不懂的话,就不需要点开 GitHub 看如何部署了,这个 Bot 我没打算作为公共 Bot 来使用,因为群组内的聊天隐私性本身就很低,如果引入一个不清楚的 Bot ,那安全性也跟着降低了,所以有需要的童鞋可以根据自身需求修改代码,自行部署使用。
上面只是个大概的逻辑,细分的操作逻辑在代码中都有注释。
如果有兴趣想要自己搭建一个验证 Bot 可以参考本步骤。
首先就是 VPS 选择:必须得是 GFW 外面的 VPS 上才能部署,要不然无法访问 Telegram 的 API,自然也无法使用相应的功能了。
第二步安装必须的插件,使用下面的代码安装 python3、pip3、redis、telepot。我的系统环境是 Ubuntu,如你的环境不是 Ubuntu 请自行替换命令。
apt install python3-pip -y apt install redis -y pip3 install telepot pip3 install redis pip3 install captcha
这里你需要自行在 Telegram 上私聊 @BotFather ,点击 start 后向它发送命令/newbot,后面的对话如下图所示:
/newbot
最下面红框部分为你的 bot token.
上面的全部都安装好后使用以下命令从 GitHub 获取源码。
git clone https://github.com/SaltyLeo/telegram-simple-captcha-bot.git
如一切正常,应该是如下输出:
Cloning into 'telegram-simple-captcha-bot'... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (12/12), done. remote: Total 13 (delta 0), reused 10 (delta 0), pack-reused 0 Unpacking objects: 100% (13/13), done.
源码下载完毕后,就要编辑代码将记得 Bot Token 放到代码里,使用以下命令编辑 tgbot.py
tgbot.py
cd telegram-simple-captcha-bot && nano tgbot.py # 修改第18行,将 Token 添加到引号内。 TOKEN = ''#你的bot_TOKEN #修改为如下所示即可: TOKEN = '1571461630:AAHtC3BXXXXXXXXXXXXXvF-bGuRG4w8YYI'#你的bot_TOKEN #最后记得使用 ctrl+x 保存文件并退出nano
将 Bot 添加到你需要开启验证的 Telegram 群组中,并授予权限。机器人至少需要两个权限:删除消息和封禁用户,如下图所示:
删除消息
封禁用户
此时回到命令行,使用 python3 tgbot.py 启动 Bot 。并在机器人所在的群组中随便发送一条消息,如果运行正常会显示如下输出:
python3 tgbot.py
bot 已启动 ... 本群组ID为: -10011342xxxxx
记住你的群组 ID,我们再次编辑 tgbot.py 文件,将群组 ID 放到第17行的引号中,如下所示:
auth_chat = '-10011342xxxxx'#群组id TOKEN = '1571461630:AAHtC3BXXXXXXXXXXXXXvF-bGuRG4w8YYI'#你的bot_TOKEN
最后记得保存文件并退出,Bot 所有的配置均已完成。你现在可以使用命令 python3 tgbot.py 启动 Bot,然后使用小号入群测试,应该和本文开篇的视频效果一致。
未完待续
-EOF-
我个人常用的一些模板函数,权当作备份。
实用代码分享
使用油猴脚本下载全网所有平台的音乐
Google AdSense 的一些思考与研究
感觉Hexo真的简单方便,不管是迁移还是管理。
目录
热门标签
更多语言
站点信息