使用 n8n 自动将带附件的来信发布到 Facebook
Source: Dev.to
这个自动化的功能
- 监视电子邮件收件箱
- 使用邮件主题作为 Facebook 的文字说明
- 转换并上传图片附件
- 自动发布帖子
工作流概览

电子邮件 → Facebook 自动化工作流的高级视图
为什么使用 IMAP(而不是 Gmail 触发器)
我最初尝试使用 n8n 的 Gmail Trigger,因为它看起来更“原生”。实际使用中,它对我的场景并不够可靠:
- 新邮件并不总是触发工作流
- 有时根本没有任何触发
对于公开发布的自动化来说,错过哪怕一封邮件都是不可接受的。我出于以下几个实际原因改用了 IMAP:
- 执行一致 —— 每次都有新邮件被捕获
- 适用于任何邮件提供商 —— 不受 Gmail API 限制
它简单、可靠,保证工作流每次都能触发——正是我需要的。
处理 Facebook 图片帖子
Facebook 不允许在单个帖子中直接上传多张图片。相反,需要:
- 将每张图片 未发布 地上传
- 收集返回的
media_fbid - 在创建最终帖子时附上这些 ID
步骤 1:遍历附件
使用 Loop Over Items 节点逐个处理附件。
步骤 2:以未发布方式上传
POST https://graph.facebook.com/{page-id}/photos
- 设置
published: false - 传入附件的 URL
每次上传都会返回一个 media_fbid——将其保存。
步骤 3:创建最终帖子
POST https://graph.facebook.com/{page-id}/feed
- 使用邮件主题作为
message - 附上所有收集到的
media_fbid
理解了这个流程后,后续操作就非常直观。
我遇到的坑
附件格式很重要
n8n 将邮件附件视为二进制数据。我必须在上传到 Facebook 前使用 Convert to File 节点进行转换;否则 API 会拒绝。
Facebook 权限
确保你的应用拥有 pages_manage_posts 和 pages_read_engagement 权限,否则上传会失败。
最后感想
这并不是一个炫目的自动化——但它悄悄地节省了时间,消除了摩擦。如果你已经在使用 n8n 并且需要处理重复的发布工作,这类工作流绝对值得构建。有时,最好的自动化正是你已经不再注意到的那一个。