工作流介绍
将收到的 Telegram 文件保存到 Google Drive – 工作流分析
此 n8n 工作流模板可自动将通过 Telegram 发送的文件直接保存到 Google Drive 中的指定文件夹。它利用实时消息监控、条件逻辑和云存储集成,在无需手动干预的情况下创建无缝的文件归档或备份系统。
工作流功能
该工作流会监听 Telegram 聊天(通常是私有机器人对话)中的新消息,检查消息是否包含文件(特别是文档),如果包含,则下载该文件并将其上传到 Google Drive 中预先配置的文件夹。这使用户能够将文档、图片、PDF 或任何支持的文件类型直接从 Telegram 转发到他们的云存储中。
主要功能和能力
- 实时触发: 使用 Telegram Webhook 即时响应传入的消息。
- 文件检测逻辑: 采用条件“If”节点来验证消息负载中是否存在文档。
- 自动文件下载: Telegram 触发器配置为
download: true,确保自动检索二进制文件数据。 - Google Drive 集成: 使用 OAuth2 身份验证安全地将文件上传到指定文件夹。
- 元数据保留: 在上传到 Google Drive 时保留 Telegram 中的原始文件名。
- 无代码自动化: 完全可通过 n8n 的可视化界面进行配置,无需编写脚本。
主要节点及其用途
-
On new Telegram Message (
n8n-nodes-base.telegramTrigger)- 通过订阅 Telegram 机器人的消息更新作为入口点。
- 配置为在消息包含文档时自动下载文件内容。
- 需要有效的 Telegram Bot API 凭据。
-
If Message contains a File (
n8n-nodes-base.if)- 评估传入消息是否包含
document对象(表示发送了文件)。 - 使用表达式
={{ $json.message.document }}来检查此字段是否存在。 - 仅当满足条件(即存在文件)时,才将执行传递到下一个节点。
- 评估传入消息是否包含
-
Upload File to GDrive (
n8n-nodes-base.googleDrive)- 接收从 Telegram 下载的文件二进制数据和元数据。
- 使用 OAuth2 凭据将文件上传到 Google Drive。
- 将文件保存在“我的云端硬盘”下的“Demos”文件夹中(ID:
11gyG2TvG0sqCG202CN-w9rloGW-CzKBc)。 - 使用
={{ $json.message.document.file_name }}动态设置文件名。
用例和优势
- 个人文档归档: 用户可以将收据、合同或笔记发送到他们的 Telegram 机器人,并自动保存到 Google Drive。
- 团队协作: 团队可以使用共享的 Telegram 机器人来收集提交的内容(例如,报告、设计),并自动集中存储在 Drive 中。
- 备份自动化: 通过创建冗余的云副本,防止通过 Telegram 发送的重要文件丢失。
- 节省时间: 消除了手动下载和上传步骤,减少了人为错误和工作量。
- 可扩展性: 可以扩展以处理多种文件类型、应用命名约定或触发下游操作(例如,电子邮件通知)。
分步工作流逻辑
-
触发激活:
用户向配置的 Telegram 机器人发送包含文件(例如 PDF)的消息。telegramTrigger节点通过 Telegram 的 Webhook API 检测到此事件。 -
自动文件下载:
由于additionalFields.download设置为true,n8n 会自动从 Telegram 服务器获取文件内容,并将其作为二进制数据附加到工作流项中。 -
条件检查:
工作流将消息负载传递给 If 节点,该节点评估message.document是否存在。如果消息仅包含文本或包含不受支持的媒体(例如贴纸),则条件失败,工作流停止。 -
Google Drive 上传:
如果检测到文档,工作流将继续到 Google Drive 节点。它使用:- 来自
message.document.file_name的原始文件名 - 对应于“Demos”文件夹的预定义文件夹 ID (
11gyG2TvG0sqCG202CN-w9rloGW-CzKBc) - 经过身份验证的 Google Drive 凭据执行上传
- 来自
-
完成:
文件现已存储在 Google Drive 中,工作流成功结束。未来的消息将独立触发相同的序列。
此工作流例证了两个流行平台——Telegram 和 Google Drive——之间高效的、事件驱动的自动化,使用户能够以最少的设置来简化数字工作流程。
使用方法:下载 JSON 文件,然后在 n8n 中选择“从文件导入”。