你是否习惯在 Memos 上随手记录灵感,却又希望这些碎碎念能实时同步到飞书,方便团队查阅或提醒自己?
由于 Memos 和飞书的 Webhook 数据格式“语言不通”,直接填地址是无法成功的。今天,手把手教你利用 Cloudflare Workers 搭建一个免费的中间“翻译官”,实现秒级同步!
🛠️ 准备工具 #
- Memos 账号(已部署好实例)
- 飞书 群机器人(获取 Webhook 地址)
- Cloudflare 账号(用于部署免费的转发脚本)
第一步:获取飞书机器人地址 #
- 进入飞书群聊,点击 设置 -> 机器人 -> 添加机器人。
- 选择 “自定义机器人” ,设置好名字(如:Memos 助手)。
- 复制生成的 Webhook 地址(格式如:
https://open.feishu.cn/open-apis/bot/v2/hook/xxx)。
- 安全设置: 建议先不设置自定义关键词和 IP 白名单,方便调试。
第二步:搭建“翻译官” Cloudflare Worker #
这是最关键的一步,我们需要一个中间层把 Memos 发出的数据包转换成飞书能看懂的“卡片”。
- 登录 Cloudflare,进入 Workers & Pages。
- 点击 Create Application -> Create Worker,起名
memos-to-feishu。 - 点击 Edit Code,将代码框内容全部清空,粘贴以下最新增强版代码:
export default {
async fetch(request, env, ctx) {
if (request.method !== "POST") return new Response("Method Not Allowed", { status: 405 });
try {
const body = await request.json();
// 兼容 Memos 不同版本的数据结构解析
const memoData = body.memo || body.data || body;
const memoContent = memoData.content || "内容为空或解析失败";
const creator = body.creatorName || memoData.creatorName || memoData.creator?.nickname || "Memos用户";
// 构建飞书美观卡片
const feishuPayload = {
"msg_type": "interactive",
"card": {
"header": {
"title": { "tag": "plain_text", "content": "🌟 Memos 新动态" },
"template": "blue" // 蓝色标题栏
},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": `**发布者:** ${creator}\n**正文内容:**\n${memoContent}`
}
},
{ "tag": "hr" },
{
"tag": "note",
"elements": [{ "tag": "plain_text", "content": `同步时间:${new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })}` }]
}
]
}
};
// ⚠️ 这里替换为你第一步复制的飞书 Webhook 地址
const FEISHU_URL = "https://open.feishu.cn/open-apis/bot/v2/hook/你的代码";
await fetch(FEISHU_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(feishuPayload),
});
return new Response("Success", { status: 200 });
} catch (err) {
return new Response("Error: " + err.message, { status: 500 });
}
},
};
- 点击右上角 Save and Deploy 部署。
- 部署完成后,在页面上方找到该 Worker 的 URL 地址(例如:
https://memos-to-feishu.xxx.workers.dev),并复制它。 - 有需要的,可以设置自定义域名
- 对自定义域名安全规则中设置“跳过TTS检查”
第三步:在 Memos 中开启推送 #
-
登录你的 Memos 网页端,点击 设置 (Settings) -> 系统 (System) -> Webhooks。
-
点击 创建 (Create) :
- 名称: 飞书推送
- Payload URL: 粘贴你在第二步获得的 Cloudflare Worker URL。
-
点击保存。
🚀 测试一下! #
现在,试着在 Memos 发送一条动态。不到 1 秒钟,你的飞书群就会弹出一条精致的蓝色卡片通知!
❓ 常见问题排查 #
Q:为什么提示“无法解析内容”?
Memos 的版本更新非常快,不同版本的字段名可能叫 memo、data 或 content。本教程提供的脚本已经做了多重兼容。如果依然报错,可以在 Cloudflare Worker 的 Logs 页面开启实时监控,查看 Memos 发出的原始 JSON 格式。
Q:我想修改通知卡片的颜色?
在脚本中找到 "template": "blue",你可以将其改为 orange、red、green 或 wathet(浅蓝色),定制你的专属通知风格。
结语 #
通过简单的几行代码,我们就让 Memos 与飞书无缝衔接。如果你觉得这个教程有用,欢迎点赞转发,让更多人的灵感不再“断点”!
💡 延伸阅读: Memos 还可以通过类似的方式同步到钉钉、微信订阅号或 Telegram 机器人。如果你感兴趣,请在评论区留言告诉我们!
参考文章 #