banner
槿呈Goidea

槿呈Goidea

读书|新知|生活禅
twitter
tg_channel
youtube

Telegram RSSbot 搭建简要说明

8DUuBX

之前我所有的 RSS 订阅都在 Inoreader,每次打开后都是几十几百条,让我不胜其烦。原本应该简约而不简单的 RSS 阅读体验不应该是这样。

于是今天抽空把我在 Telegram 上的 RSSbot 给更新了,将很多新闻类的订阅都转移到了 RSSbot 上。Inoreader 中保留的是高质量的,或者需要我花时间读的内容;RSSbot 上就只用接收那些即时性的新闻、天气预警、地震速报之类不需要我花太多时间的消息。

在更新之前,RSSBot 收到的消息是这样的:

cjY5do

更新后,RSSbot 收到的消息就变成了这样:

z4MOZ8

我可以直接在 Telegram 上看消息的正文了,不像之前还得点击链接,跳转到浏览器去看。太方便了,对不对?

搭建一个 RSSbot 非常简单,只需要简单的几步。

准备工作

在搭建 RSSbot 之前,首先需要准备一个 VPS。

然后安装好 Docker 和 Docker compose。

如果不知道该怎样安装,可以看《用 RSShub 打造专属信息流》中「用 Docker 部署 RSShub」的部分,有安装 Docker 的详细介绍。

接下来,有三个步骤来搭建机器人的后端,使用的是 RSS-to-Telegram-Bot。(欢迎去 GitHub 上给这个项目点一个 ⭐)

步骤一:新建机器人

打开 Telegram,搜索 @BotFather,然后发送 /newbot

收到 Alright, a new bot. How are we going to call it? Please choose a name for your bot. 这条信息后,回复一个名称,作为机器人的名字,如 RSS2TG。

接下来,又会收到一条信息,Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot. 需要给机器人再添加一个以 bot 结尾的名字,如 RSS2TG_bot。

之后,就会收到一条很长的信息,其中会有一段红色的文字写的是Use this token to access the HTTP API: 红色字符串 Keep your token secure and store it safely, it can be used by anyone to control your bot.,是机器人的 API,把这个 API 记下来,步骤三会用到。

另外,这个 API 需要妥善保管,因为任何人只要有了这个 API,就能控制这个机器人。

步骤二:获取基本信息

在 Telegram 搜索 @userinfobot,然后点击 start,获取用户 ID 后记下来,步骤三会用到。

接着在浏览器上,通过 Get telegraph API acess token 获取至少五个 token (每刷新一次网页会获得一个 token),将获取到的 token 都记录下来,下一步会用到。

步骤三:搭建机器人后端

首先,通过 SSH 登录到 VPS。

然后输入 mkdir rsstt,创建一个 rsstt 的目录。

接着输入 cd rsstt 打开 rsstt 目录。

再然后输入 wget https://raw.githubusercontent.com/Rongronggg9/RSS-to-Telegram-Bot/dev/docker-compose.yml.sample -O docker-compose.yml,获取 Docker compose 模板。

接下来输入 vi docker-compose.yml,进入到 Docker compose 的模板开始编辑环境变量。您会看到以下信息:

# Please read https://github.com/Rongronggg9/RSS-to-Telegram-Bot/blob/master/docs/deployment-guide.md for more details.
version: '3.6'

services:
  main:
    image: rongronggg9/rss-to-telegram:dev  # stable image: rongronggg9/rss-to-telegram
    container_name: rsstt  # need to be unique
    restart: unless-stopped
    volumes:
      - ./config:/app/config
    environment:
      - TOKEN=1234567890:A1BCd2EF3gH45IJK6lMN7oPqr8ST9UvWX0Yz0  # get it from @BotFather
      - MANAGER=1234567890  # get it from @userinfobot

# ↓------ To disable sending via Telegraph, comment out this area ------↓ #
# Get Telegraph API access tokens: https://api.telegra.ph/createAccount?short_name=RSStT&author_name=Generated%20by%20RSStT&author_url=https%3A%2F%2Fgithub.com%2FRongronggg9%2FRSS-to-Telegram-Bot
# Refresh the page every time you get a new token.
# If you have a lot of subscriptions, make sure to get at least 5 tokens.
#                            ↓ Replace with your access tokens ↓
      - TELEGRAPH_TOKEN=
        1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d
        1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d
        1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d
        1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d
        1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d
# ↑------ To disable sending via Telegraph, comment out this area ------↑ #

# Please read https://github.com/Rongronggg9/RSS-to-Telegram-Bot/blob/master/docs/advanced-settings.md for more details.
# ↓------ Advanced settings ------↓ #
      #- MULTIUSER=0  # default: 1
      #- CRON_SECOND=30  # 0-59, default: 0
      #- DATABASE_URL=postgres://username:password@host:port/db_name  # default: sqlite://path/to/config/db.sqlite3
      #- API_ID=1025907  # get it from https://core.telegram.org/api/obtaining_api_id
      #- API_HASH=452b0359b988148995f22ff0f4229750  # get it from https://core.telegram.org/api/obtaining_api_id
      #- IMG_RELAY_SERVER=https://wsrv.nl/?url=  # default: https://rsstt-img-relay.rongrong.workers.dev/
      #- IMAGES_WESERV_NL=https://t0.nl/  # default: https://wsrv.nl/
      #- USER_AGENT=Mozilla/5.0 (Android 12; Mobile; rv:68.0) Gecko/68.0 Firefox/96.0  # default: RSStT/2.2 RSS Reader
      #- IPV6_PRIOR=1  # default: 0
      #- T_PROXY=socks5://172.17.0.1:1080  # Proxy used to connect to the Telegram API
      #- R_PROXY=socks5://172.17.0.1:1080  # Proxy used to fetch feeds
      #- PROXY_BYPASS_PRIVATE=1  # default: 0
      #- PROXY_BYPASS_DOMAINS=example.com;example.net
      #- HTTP_TIMEOUT=30  # default: 12
      #- HTTP_CONCURRENCY=0  # default: 1024
      #- HTTP_CONCURRENCY_PER_HOST=0  # default: 16
      #- TABLE_TO_IMAGE=1  # default: 0
      #- TRAFFIC_SAVING=1  # default: 0
      #- LAZY_MEDIA_VALIDATION=1  # default: 0
      #- MANAGER_PRIVILEGED=1  # default: 0
      #- NO_UVLOOP=1  # default: 0
      #- MULTIPROCESSING=1  # default: 0
      #- DEBUG=1  # debug logging, default: 0
# ↑------ Advanced settings ------↑ #

输入 i 进入到编辑器的编辑模式,找到 TOKEN=1234567890:A1BCd2EF3gH45IJK6lMN7oPqr8ST9UvWX0Yz0 # get it from @BotFather,删除1234567890:A1BCd2EF3gH45IJK6lMN7oPqr8ST9UvWX0Yz0 后,将步骤一中获取的机器人 API 粘贴进去。

再找到 MANAGER=1234567890 # get it from @userinfobot,删除 1234567890 后,将步骤二中获取到的用户 ID 粘贴进去。

再将 TELEGRAPH_TOKEN 后面的五条 token 都删除,将步骤二中获取的 token 一条条粘贴进去。

- TELEGRAPH_TOKEN=

1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d #替换成步骤二中获取的 token
1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d #替换成步骤二中获取的 token
1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d #替换成步骤二中获取的 token
1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d #替换成步骤二中获取的 token
1a23b456c78de90f1a23b456c78de90f1a23b456c78de90f1a23b456c78d #替换成步骤二中获取的 token

接下来,按 esc 键,退出编辑模式,输入 :wq 保存修改。

最后输入 docker-compose up -d,机器人的后端就搭建好了。

在机器人上订阅 RSS

此时,在 Telegram 上打开在步骤一中建好的机器人,会看到输入框前会有一个三天横线的蓝色按钮,点击它就能看到各种指令。

  • /sub: 添加订阅
  • /unsub: 退订订阅
  • /unsub_all: 退订所有订阅
  • /list: 列出订阅列表
  • /set: 自定义订阅设置
  • /set_default: 自定义默认设置
  • /import: 从 OPML 导入订阅
  • /export: 导出订阅到 OPML
  • /activate_subs: 启用订阅
  • /deactivate_subs: 停用订阅
  • /version: 查看 bot 版本
  • /help: 查看帮助
  • /lang: 选择语言
  • /test: 测试 (仅 bot 管理员)
  • /set_option: 更改 bot 配置 (仅 bot 管理员)
  • /user_info: 查看 / 修改用户信息 (仅 bot 管理员)

订阅 RSS 时,就是向机器人发送 /sub <RSS 地址> 的指令。

当所有的订阅源输入完成后,再发送 /activate_subs 来启动所有订阅。

之后,当订阅的 RSS 更新后,就可以在机器人上收到了。

拓展:搭建 MTPROTO

MTPROTO 是 Telegram 的代理服务,在设置-数据和存储-使用代理中可以找到。

使用了 MTPROTO 之后,不需要开代理软件(如 shadowroeket,clash)也可以正常使用 Telegram,也就是 Telegram 可以 24 小时在线了。

部署的过程非常简单,在 VPS 上直接使用 Sunpma 大佬的绿色一键脚本部署就行。

首先,输入 mkdir /home/mtproxy && cd /home/mtproxy 新建一个目录。

然后输入 curl -s -o mtproxy.sh https://raw.githubusercontent.com/sunpma/mtp/master/mtproxy.sh && chmod +x mtproxy.sh && bash mtproxy.sh,根据提示安装脚本。

接着输入 bash mtproxy.sh start 运行脚本。

把返回的信息在 Telegram 上设置好就可以了。

brexYy


我在 Telegram 上新建了一个与博客同名的频道 槿呈 Goidea,期待您的关注。

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.