[教程]给Telegram电报群组/通道搞一个订阅机器人(flowerss_bot)

写在前面

之前写过一个类似的订阅机器人教程,在实际使用中发现有些问题,今天找到另外一个类似的机器人

文章分4块内容:

创建机器人/设置机器人/DOCKER安装方式或者手动安装方式都行

文章来源moerats.com 搬运过来给自己/给同学们。

准备工作

Github地址:https://github.com/indes/flowerss-bot

1、申请Bot Token
打开Telegram,搜索@BotFather,发送/newbot ,申请一个Bot,申请完成后,会发给你一个Bot Token

和机器人之父聊天,/mybots,如果建了多个机器人的话,会让你选择是用哪一个

点击API Token

红框里的就是token

编辑机器人

编辑命令

和机器人聊天内容如下

sub [url]  - 订阅(url 为可选)
unsub [url] - 取消订阅(url 为可选)
list  - 查看当前订阅
set  - 设置订阅
help  - 帮助

2、申请Telegraph Token

curl https://api.telegra.ph/createAccount?short_name=zhujitips&author_name=zhujitips&author_url=https://zhujitips.com

返回的JSONaccess_token字段值即为Telegraph Token

Docker安装

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、运行镜像

#填入bot_token和telegraph_token参数后运行即可
docker run --restart=always --name flowerss -d -v /flowerssdata:/var/flowerss indes/flowerss-bot -b bot_token -t telegraph_token

Docker默认使用SQLite数据库,且文件存放在/flowerssdata文件夹。

手动安装

1、安装golang
这里直接使用最新版的go二进制安装,不然后面编译会因版本问题出错。

wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz
#解压
tar -C /usr/local -xzf go1.12.6.linux-amd64.tar.gz
#生效
echo 'export PATH=$PATH:/usr/local/go/bin' >>/etc/profile
source /etc/profile

2、安装依赖

#Debian、Ubuntu系统
apt install make gcc git -y

#CentOS系统
yum install make gcc git -y

3、运行机器人

#拉取源码
git clone https://github.com/indes/flowerss-bot
cd flowerss-bot
#编译
make build
#新建配置文件
nano config.yml

参数说明大致如下:

#Telegram Bot Token,必填
bot_token: XXX
#Telegraph Token,用于转存原文到Telegraph,也就是即时查看功能,选填    
telegraph_toke: xxxx
#用于国内等无法连接Telegram API的情况,国外忽略
socks5: 127.0.0.1:1080
#RSS源扫描间隔(分钟),选填
update_interval: 10
#使用Mysql数据库,默认使用SQLite
mysql:
  host: 123.123.132.132
  port: 3306
  user: moerats
  password: moerats
  database: moerats


##这里博主默认使用的SQLite,扫描间隔为5分钟,所以使用到的参数如下:
bot_token: XXX
telegraph_toke: xxxx
update_interval: 5

然后新建Systemd配置文件,只适用于CentOS 7Debian 8+Ubuntu 16+等。

#修改下flowerss-bot源码路径即可,然后一起复制到SSH运行
cat > /etc/systemd/system/flowerss.service <<EOF
[Unit]
Description=flowerss
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/flowerss.pid
WorkingDirectory=/root/flowerss-bot
ExecStart=/root/flowerss-bot/flowerss-bot
RestartPreventExitStatus=23
Restart=always

[Install]
WantedBy=multi-user.target
EOF

启动并开机自启:

systemctl start flowerss
systemctl enable flowerss

如果没有Systemd的,比如CentOS 6Debian 7等,直接使用rc.local,使用命令:

#先启动
nohup ./flowerss-bot &
#设置开机自启,路径和命令自行修改
sed -i '/exit/d' /etc/rc.local
echo "cd /root/flowerss-bot && nohup ./flowerss-bot &" >> /etc/rc.local

使用

使用命令:

/sub [url] 订阅(url 为可选)
/unsub [url] 取消订阅(url 为可选)
/list 查看当前订阅
/set 设置订阅
/help 帮助

Channel订阅使用方法:

1、将Bot添加为Channel管理员
2、发送相关命令给Bot

#Channel订阅支持的命令
/sub @ChannelID [url] 订阅
/unsub @ChannelID [url] 取消订阅
/list @ChannelID 查看当前订阅

ChannelID只有设置为Public Channel才有。如果是Private Channel,可以暂时设置为Public,订阅完成后改为Private,不影响Bot推送消息。

例如要给t.me/zhujitips频道订阅RSS更新:

1、将Bot添加到moerats频道管理员列表中
2、给Bot发送/sub @moerats https://zhujitips.com/feed/ 命令

本文来自moerats.com