使用n8n订阅网站rss消息推送到Telegram
n8n 是一个免费且开放的、公平代码许可的基于节点的工作流自动化工具。它可以自托管、易于扩展。可帮助您将任何具有 API 的应用程序与任何其他应用程序连接起来,并使用很少或无需代码来操作其数据。
n8n is a free and open fair-code licensed node based Workflow Automation Tool. It can be self-hosted, easily extended. helps you to connect any app with an API with any other, and manipulate its data with little or no code.
关于n8n
简单点来讲,n8n就是一个能够链接多个API应用程序,基于自定义工作流进行协作的开源工具。接下来演示下如何通过n8n实现网站rss更新通知到telegram.
1:创建telegram机器人
2:获取chat id
3:构建n8n事件流
1.如何为Telegram创建机器人
首先是第一件事。您需要注册Telegram。
打开Telegram应用程序,搜索@BotFather并开始聊天。发送/newbot命令并按照说明进行操作。完成初始步骤后,您将获得:
- 您自己的令牌
- Telegram api URL - api.telegram.org/
- 链接到文档
2.获取 chatId
观察这个 url https://api.telegram.org/bot{token}/getUpdates
使用第一步获得的 token
替换上述 url 中的 {token}
然后得到新的 url,复制粘贴到浏览器地址栏,回车请求。不出意外你会得到如下 response
回到telegram进入到你创建的机器人会话,随便和它说一句话,比如给它发一句 "Hello World",然后重新请求一遍上述的 url https://api.telegram.org/bot{token}/getUpdates
,不出意外你收到的 response 类似是这样了
其中的 result[0].message.chat.id 的值就是 chatId
也就是 5210226195知道了 token 和 chatId 就可以使用 bot 了。
curl 测试
这是发送 post 请求。使用实际的 token
和 chatId
替换 shell command 中的 {token}
和 {chatId}
不出意外,你的 bot 会收到 "Hello World",恭喜,这已经成功了!
3.搭建n8n流水线
我是参考: Setting up an Automated Blog using n8n & Tiny Tiny RSS
1:选择一个支持rss的网站,比如:(stiles.cc/feed/)
2:使用rss-stiles-workflow地址,导入对应的工作流
3:替换RSS Feed Read模块成想要订阅的RSS地址
4:替换Telegram模块成之前获取到的token和chatid
执行该workflow,但rss站点有新的文章发布的时候,telegram就能相应的发送消息通知,如下图:
实际上n8n可以实现很多场景,你可以通过n8n.io/workflows 去搜索需要的工作流。比较容易想到的,devops流水线,多端消息互通,自动通信telegram机器人等
参考资料