Github
https://github.com/crazypeace/tg-keyword-monitor-bot
这里有一个关键字消息的频道示例:
https://t.me/FuckGFWNewbieNeedHelp
搭建说明
首先, 你可以看看Github项目的readme, 那是一个从头到尾按操作顺序手把手的图文教程.
如果你觉得那篇教程有点云里雾里, 那么下面, 我换一个角度来描述.
系统架构
信息源 -> 采集者 -> 本程序 -> 发布者 -> 消费者
系统中的各部分
信息源 是 你想监听的各个tg群组, 频道
采集者 是 一个tg账户
- 推荐你注册一个新tg账户来玩.
本程序 是 本项目 main.py
- 本程序需要 api_id, api_hash. 需要到 https://my.telegram.org/apps 申请. 这里需要登录tg账户, 可以是 采集者同账户, 也可以是不同的账户.
发布者 是 一个tg机器人
- 本程序需要 bot_token, 需要向 https://t.me/BotFather 申请. 向 @BotFather 发起机器人申请的tg账户, 可以和前面同账户, 也可以是不同的账户.
消费者 是 接收关键字通知消息 的用户或群组或频道
本项目的运行环境
安装python
一般你用的比较新版本的操作系统 Debian / Ubuntu, 已经自带了.
略
安装 pip
apt install -y python3-pip拉取项目
apt install -y gitgit clone https://github.com/crazypeace/tg-keyword-monitor-botcd tg-keyword-monitor-bot安装python依赖
pip3 install -r requirements.txt --break-system-packagesconfig.yaml.default 复制为 config.yaml
系统中各部分之间的关系
信息源 与 采集者 之间的关系
你自己登录 采集者账户 的身份, 加入信息源.
入群验证, 不公开群需要别人拉你, 需要管理员审批, ... 等等等等 这些问题, 需要你自己解决.
采集者 与本程序 之间的关系
编辑config.yaml
启动本程序需要 api_id, api_hash
编辑config.yaml
本程序过滤关键字的设置
编辑config.yaml
本程序与发布者的关系
编辑config.yaml
发布者 与 消费者 的关系
编辑config.yaml
运行本项目
python3 ./main.py命令行提示你输入验证码,同时,telegram账户会收到一个验证码
将这个验证码输入到命令行
- 只有第一次运行时会需要验证码. 以后运行不需要输入验证码.
========
以上, 就是本项目的基本搭建.
========
后记
如果你需要长期运行bot.
可以启用 service
cp tg-keyword-monitor-bot.service /etc/systemd/system/systemctl daemon-reloadsystemctl enable tg-keyword-monitor-bot.servicesystemctl start tg-keyword-monitor-bot.service- 如果你的目录不是/root/tg-keyword-monitor-bot, 那么请自行编辑tg-keyword-monitor-bot.service文件的内容
如果你希望用一个管理员tg账户给bot发命令, 来修改关键字列表.
编辑config.yaml
商业化构思
再复习一下本项目的架构
卖的是搭建项目的劳动
对于项目的使用者来说, 如果还要操作linux系统, 修改配置文件来修改关键字, 使用起来会不方便.
本项目提供向机器人发命令来修改关键字的操作方式, 使用者不需要接触linux环境.
示例,
甲方 提供 tg账号, 作为采集者, 把信息源的群都加好.
你把这个项目搭起来, 把甲方的tg账号设置为 管理员 和 消费者.
使用方式就是,
如果要监听更多的群, 甲方自己操作tg账号去加群.
如果要修改关键字, 甲方自己操作tg账号和机器人交互修改关键字.
甲方在tg账号上接收机器人发送的关键字消息.
卖的是信息源
比如, 某些群 加群要收费, 或者不接收新群成员了.
而你手里有已经加了这些群的tg账号, 作为 采集者.
示例,
在同一个大圈子里, 不同的甲方有不同的关键字需求.
你的采集者是同一个tg账号.
你为每一个甲方, 分别 运行一个项目. (可以共用VPS, python环境. 建不同的目录就行了)
其它设置都和标准流程一样, 只是设置同样的 采集者 (配置文件中的 user_phone 参数)
卖消费者权限
如果这个行业关注的关键字相当同质化, 你也掌握了信息源. 想降低维护成本, 你可以直接卖消费者权限.
示例,
你可以直接修改配置文件的 result_id_list 列表, 添加不同的 接收关键字消息的 tg 账号的ID.
你也可以把一个tg频道的id 设置为 result_id_list.
然后把 发布者的 bot 添加为频道的管理员, 这样就可以发关键字通知了.
你可以把频道设置为私有的, 你控制订阅这个频道的权限就行. 你收了钱, 再把某个tg用户添加进频道.
我自己公开了一个关键字消息的频道示例:
https://t.me/FuckGFWNewbieNeedHelp
使用多个采集者
不希望一个tg账号加太多的群, 担心一下子被封号的风险. 或者是你已经触达500个群组的上限.
运行多套程序, 分别使用不同的采集者, 只是设置为同一个消费者, 比如 同一个频道id
这样你的用户, 只要加入关键字通知频道就行了.
管理员设置为群组
如果你是帮甲方搭系统. 甲方有需求, 需要有多个管理员(比如, 工作在不同的时区, ...)
或者甲方有管理员权限的管理需求(加入新员工, 老员工离职, ...)
你可以让甲方建一个群组, 你把群组设置为管理员, 把 bot 添加到群组中, 接收命令.
这样, 甲方自己管理群组是否公开, 群组的成员, 以及群成员的发言权限之类的, 就行了.
评论 (0)