大家好。
今天介绍如何把第 3 篇处理好的新闻数据发送到手机上的即时通讯应用。
完成数据收集和清洗后,接下来就要用方便阅读的形式把信息交给用户。
本文以对开发者友好的 Telegram 为例,介绍如何配置自动化流水线的发送端。
所有设置都可以在浏览器中完成,因此 macOS、Windows 和 Linux 用户可以按同样的步骤练习。
Telegram 的机器人创建和 API 凭据发放流程很直观。
通过名为 BotFather 的官方管理机器人,可以创建新机器人并获取专用的认证密钥。
在 Telegram 应用的搜索框中搜索
BotFather
,进入官方账号的对话。
在聊天框输入
/newbot,依次设置机器人的名称和用户名(username)。

创建 Telegram 机器人
设置完成后,BotFather 会发放一串由字母和数字组成的
API Token
。
这个 API Token 相当于控制机器人的密码,请妥善保管,避免泄露。
在 n8n 工作流中添加
Telegram
节点,并连接到前一个节点。
操作选择
Send Message
。
在节点设置中打开凭据(Credentials)下拉菜单,选择新建凭据。
粘贴刚才获取的 API Token 并保存,n8n 就获得了与 Telegram 服务器通信的权限。

创建凭据
接下来填写接收消息的聊天会话的唯一标识 Chat ID,基本接入就完成了。
在 Telegram 中打开与机器人的聊天,进入频道管理,在“频道类型 → 链接”处可以看到以
t.me/ 开头的 URL。
URL 的最后一段就是 Chat ID。例如,如果链接是
t.me/your_channel_name,则 Chat ID 为
@your_channel_name。
直接发送原始数据,用户读起来并不方便。
可以通过 Markdown 改善可读性,同时考虑与服务器通信时可能遇到的限制。
在消息输入框中启用表达式(Expression)。
按照下面的示例,把 Markdown 语法与 JSON 变量结合起来编写消息模板。
메시지 템플릿 표현식 예시// 대괄호에 텍스트를 넣고 소괄호에 URL을 넣어 하이퍼링크를 생성합니다.
*오늘의 기술 동향 뉴스*
제목: [{{ $json.title }}]({{ $json.link }})
발행일: {{ $json.pubDate }}
这种写法可以把长 URL 隐藏在链接文字后面,让消息在移动端也容易阅读。

使用模板生成的 Telegram 消息
如果在 1 秒内向消息服务器一次性发送数百条消息,会发生什么?
为了防止系统过载,服务器会启动
Rate Limit
(调用频率限制)策略并拒绝请求。
这与网络工程中的
Token Bucket
(令牌桶)算法有关。
系统定时向桶中补充令牌,每个令牌代表一次发起请求的权限。每发出一个请求,就消耗一个令牌。
令牌耗尽时,服务器会拒绝继续接收请求并返回错误。
为避免触发限制,可以使用 n8n 的
Loop Over Items (Split In Batches)
和
Wait
节点。
将数据分成小批次,在批次之间等待几秒,就能在不触发服务器限流的情况下安全发送全部数据。
本文介绍了如何使用 Telegram API 将流水线中的数据发送到外部。
理解 API 通信和 Webhook 的原理,并在系统设计中考虑 Rate Limit 等网络限制,是后端和自动化开发的基本技能。
第 5 篇将介绍如何搭建 RAG 系统,以减少 LLM 幻觉并为模型补充专业知识。