
帮一个连锁餐饮品牌做社交媒体同步,最初以为写个两百行的脚本就能搞定。真正上了生产环境才发现:那些本以为理所当然的部分一个都没有,反而多出来三个完全没预料到的东西。
把这些经验整理出来,供有类似跨平台同步需求的朋友参考。不透露客户信息,不贴核心代码,只说工程决策本身和背后的考量。
客户同时运营 Instagram、TikTok 和 Facebook 账号。之前团队每周都是手动复制粘贴——处理过期的 CDN 链接、修复那些时间对不上的文案、再重新上传媒体文件,因为这些平台生成的源 URL 从其他地方根本抓不到。
需求描述起来很简单:「把 IG 和 TikTok 上的新帖子同步到 FB,定时执行。」
三个坑,不动手做根本发现不了:
Instagram 的 scontent.cdninstagram.com 和 TikTok 的 tiktokcdn.com 链接都带了签名和 IP 绑定,有效期还很短。直接把这些 URL 丢给发布工具(比如国内可能用到的类似服务),它根本抓不到媒体文件——这些链接只在原始用户的会话里有效。
解决方案:先在我们的 worker 里把媒体文件下载下来,重新上传到我们可控的公共存储(用了 Cloudflare R2——首月免费,超出部分定价也很合理),然后提交重托管后的链接。
多这一轮传输,每个素材大约增加一秒延迟。为了稳定性,这点代价值得。
一条写着「本周五盛大开业!」的帖子,2 月 4 号发出去没问题。但三个月后 cron 任务把它抓过来准备跨平台发布时,这句话就不是「过时」了,而是「误导人」。
我们加了一个 AI 文案审核模块,它会读取文案内容、结合原帖发布日期和当前日期,然后做出判断:
用了 Claude Haiku,走 Vercel AI Gateway。每条文案大约一分钱人民币的十分之一。因为设计了「决策树优先、LLM 兜底」的逻辑,只有真正需要改写的内容才会调用大模型。
这是整个功能里杠杆效应最强的。一个 cron 直接粘贴文案的做法,三个月后回头看会很尴尬,AI 改写就不会。
五分钟内往品牌 Facebook 主页发五条文案,肯定会被标记。但把发布时间分散到一天里,看起来就是正常人工操作了。
cron 任务采用「混合」模式:第一条新帖子立即触发(最老的内容不该再等了),其余的进入发布工具队列,自然融入品牌已有的排期。只要 Buffer 或你用的发布层配置了每日日程表,发布节奏就自动搞定了。
品牌在 IG 和 TikTok 上经常发同一份内容。如果 cron 把它们当两条不同的内容处理,品牌 FB 主页就会明显看到重复。
我们为每条帖子计算一个内容指纹——对文案做标准化处理(转小写、去掉表情符号和话题标签及链接)、SHA-256 哈希、取前 16 位十六进制字符。指纹和源 ID 一起存储。发布前检查三个集合:
功能不大,但决定了效果是「看起来很机械敷衍」还是「好像真的有人认真考虑过」。
基本是现成的轮子,有意为之:
on.schedule 入口,根据 github.event.schedule 路由到不同端点)没有 Kubernetes,没有消息队列 worker,没有自建爬虫基础设施。按这个量级的小客户来算,月均成本:零。
现在聊「AI 自动化」的内容,大部分篇幅都在讲 AI。这个项目真正有意思的东西跟 AI 一点关系都没有——是 CDN 重托管、指纹去重、发布节奏设计这些环节。AI 干了大概 20% 的活,却吸引了 80% 的注意力。
另外 80% 的价值藏在那些不性感的数据管道里——正是它们确保 AI 的输出能在正确的时间、落到正确的页面上。如果你在做类似的东西,精力应该花在那些地方。
JY Tech 团队为餐饮、零售和 SaaS 客户搭建类似的自动化管道。如果你在做跨平台同步相关的方案,欢迎交流切磋。