🔎如何使用n8n实现telegram同步cflow?
00 min
2025-4-19
2025-4-19
AI 摘要
type
status
date
slug
summary
tags
category
icon
password
URL
2025年月总结
cflow是我在开源项目memos和cflow的基础上二次修改开发的一款笔记工具,相关介绍: https://dub.sh/sscflow 经过我昨天的折腾,实现了telegram发送数据到n8n的同步。

一、Docker部属n8n

我直接使用的绿联nas拉取的镜像并部署。 部属n8n的教程网上很多,关键词:Docker n8n 部属 能找到一堆 例如, https://n8n.akashio.com/article/n8n-deployment-method
强调几个点:
  1. 挂载路径映射的文件是/home/node/.n8n
  1. 我添加了一个环境变量WEBHOOK_URL,这个主要是后面telegram触发器会用到,如果不使用https会报错。由于我是部署在本地nas里所以我使用的是cloudflare tunnel进行的内网穿透。
  1. 本地部属完n8n想要访问,需要反向代理,我使用的是Lucky

二、telegram单向同步cflow

2.1 添加一个Telegram Trigger

  1. Trigger On 我选择的是*
2. Telegram account这里我填写的Access Token为Telegram bot token ,Base URL我没有使用默认的URL会链接失败... api.telegram.org是可以用cloudflare代理的,创建一个workers,代码是:
notion image
然后绑定你的域名,这个地址替换为Base URL即可
  1. 给机器人发一个消息,或者把机器人加入频道(并给管理员权限)在频道里发送消息后,点击Test step就可以获取数据了

2.2 Telegram内容格式转换

添加一个code节点,JavaScript内容如下,目的是将Telegram的内容转换为标准的Markdown格式

2.3 创建cflow卡片

  1. Method选POST
  1. URL填http://192.168.10.2:5230/api/v1/memo
  1. Authentication选Generic Credential Type
  1. Generic Auth Type选择Header Auth
  1. 点击Header Auth,Create new credential
填写cflow获取的token 6. 开启Send Body,Body Content Type选择JSON,Specify Body选择Using Fields Below,Name填写content,Value填写{{ $json.content }}
notion image
如果Telegram的内容只是简单的文本,到这一步已经结束了。
notion image

2.4 获取cflow卡片ID

目的是Telegram如果有图片需要将图片上传到cflow后关联对应的卡片id code节点的代码是:

2.5 获取图片路径

2.6 获取文件信息

notion image
  1. URL:{cloudflare代理tgurl}/bot{tgbot token}/getFile
  1. Send Query Parameters开启,Name填写file_id,Value为{{ $json.file_id }}

2.7 构建图片URL

2.8 下载图片

下载为二进制数据
  1. Method为Get
  1. URL为{{ $json.file_url }}
  1. Options选择为Response,Response Format选择为File,Put Output in Field填写data
notion image

2.9 图片格式处理

这一步的目的是讲图片格式改为image/jpeg,不然cflow无法识别图片

2.10 上传图片到cflow

notion image

2.11获取资源ID

code节点的代码是:

2.12 关联卡片资源到cflow

  1. Method选择PATCH
  1. URL为:http://192.168.10.2:5236/api/v1/memo/{{ $('获取cflow卡片ID').item.json.memo_id }}
  1. JSON为
notion image
上一篇
【必看】免费注册教育邮箱并白嫖各种资源
下一篇
浏览器插件

Comments
Loading...