AI PLAY玩法更新持续收录
← 回到更新流

2026-09-30 · 原文发布日

Gemini写Instagram文案,Telegram人工审批后才发布

一个免费n8n模板:通过带Basic Auth的n8n表单收集发帖请求(公开图片URL、产品名、已核实卖点、行动号召),交给Gemini生成含文案、五个话题标签、置信度和风险提示的草稿,再做长度、禁用词、标签数量等程序化检查。通过的草稿发到Telegram等待审批链接,人点同意后才会经Meta Graph API创建媒体容器并发布到Instagram,拒绝或处理延迟都会在Telegram反馈。

原文要点

来源是一个免费n8n模板:带 Basic Auth 的 n8n 表单收集发帖请求(公开 HTTPS 图片 URL、产品名、已核实卖点、可选行动号召),下载图片后连同受约束的提示词交给 Google Gemini,要求生成含文案、五个话题标签、置信度、风险提示的 JSON 草稿。随后做确定性程序化检查:文案长度、是否包含产品名、置信度下限、禁用词、风险标记、标签恰好五个且不重复。通过的草稿发到 Telegram 附私密审批链接并暂停等待,人批准后通过 Meta Graph API 创建 Instagram 媒体容器并轮询处理状态,完成后发布、取回 permalink 并在 Telegram 确认;拒绝或处理延迟也在 Telegram 反馈且不发布。Setup 要求 Instagram 专业账号绑定 Facebook 公共主页,图片 URL 必须是公网可访问的 HTTPS JPG/PNG/WebP 且在 Meta 处理期间保持可访问,品牌设置、Telegram chat ID、Instagram user ID、Graph API 版本、模型名与审核规则集中在“Configure Brand and Channels”一步。

这次做成什么

搭建一条“AI 写稿、机器初筛、人工点头才发”的 Instagram 发布练习流:表单收集需求,Gemini 出草稿,程序化规则把关,Telegram 审批通过后才经 Graph API 发布。本站提供可粘贴的生成提示词、检查规则示例与一条测试数据。

准备什么

  • n8n 实例,工作流可发布并有公网可访问的生产 URL
  • Google AI Studio 的 Gemini API key
  • Telegram Bot(通过 BotFather 创建)及目标 chat ID
  • Instagram 专业账号,已绑定 Facebook 公共主页,并有具备 instagram_content_publish 权限的 Meta 访问令牌
  • 一张公网可访问的 HTTPS 测试图片(JPG/PNG/WebP)

具体怎么做

  1. 配置品牌与渠道参数

    在工作流开头的 Set 节点(原模板名为 Configure Brand and Channels)集中设置:品牌名与语气、禁用词列表(如“最便宜”“100%有效”)、文案长度上限、置信度下限(如 0.7)、Telegram chat ID、Instagram user ID、Graph API 版本号、Gemini 模型名。把这些值集中在一处,后面节点全部用表达式引用,便于调整审核口径。

  2. 建带 Basic Auth 的收集表单

    加 n8n Form Trigger 节点,开启 Authentication 选 Basic Auth 并配一组练习用账号密码。表单字段:image_url(必填,提示填公网 HTTPS 图片地址)、product_name(必填)、verified_facts(必填,多行,只写已核实卖点)、cta(可选)。发布工作流后把生产表单 URL 发给测试者。表单后加 If 节点校验 image_url 以 https:// 开头且以 .jpg/.jpeg/.png/.webp 结尾,不合规直接结束并提示。

  3. 下载图片并让 Gemini 出草稿

    加 HTTP Request 节点 GET {{$json.image_url}},响应格式选 File,并设超时与最大体积保护。再加 Google Gemini 节点,把图片二进制与下方“草稿生成提示词”一起传入,要求只输出 JSON。之后加 Code 或 JSON 解析节点剥离可能的 ```json 包裹并解析出 caption、hashtags、confidence、risks 四字段。

  4. 程序化检查草稿

    加 Code 节点逐项检查并输出 passed 布尔与失败原因数组:caption 长度不超过品牌设定上限;caption 必须包含 product_name;confidence 不低于下限;caption 不包含任何禁用词;risks 数组为空;hashtags 恰好 5 个且去重后仍为 5 个、每个以 # 开头。之后 If 节点按 passed 分流,未通过则把失败原因发到 Telegram 并结束,不进入审批。

  5. Telegram 人工审批

    通过后加 Telegram 节点向配置的 chat ID 发送草稿全文(文案、标签、置信度、图片 URL),再使用 n8n 的 Wait 节点搭配审批链接(form/wait 类恢复 URL),生成“同意/拒绝”两个私密链接一并发出。工作流在此暂停,审批人点链接后恢复执行,加 If 节点读取审批结果:拒绝则发 Telegram 告知已取消并结束。

  6. 创建容器、轮询并发布

    批准后经 HTTP Request 走 Graph API:第一步 POST https://graph.facebook.com/{{api_version}}/{{ig_user_id}}/media,参数 image_url 与 caption(文案加标签);第二步用循环节点轮询 GET 容器 ID 的 status_code,直到返回 FINISHED(超时如 10 分钟则在 Telegram 报告处理延迟并结束,不发布);第三步 POST /{{ig_user_id}}/media_publish 传 creation_id;最后 GET 媒体对象的 permalink 并把链接发到 Telegram 确认已发布。

可直接复制的材料

草稿生成提示词(可直接粘贴)

本站独立编写,双花括号由上游节点替换;禁用词需与配置节点的列表保持一致。

你是品牌「{{brand_name}}」的 Instagram 文案编辑,语气:{{brand_tone}}。

产品名:{{product_name}}
已核实卖点(只允许使用这些事实,不得添加任何未列出的功效、价格或承诺):
{{verified_facts}}
行动号召(可选):{{cta}}

请结合随附的产品图片,只输出 JSON,不要输出其他文字,格式:
{"caption":"150字以内的中文文案,必须原样包含产品名","hashtags":["#标签1","#标签2","#标签3","#标签4","#标签5"],"confidence":0到1的小数,"risks":["若文案可能存在夸大或合规风险写在这里,没有则为空数组"]}

规则:
1. 不得出现“最便宜”“100%”“治愈”“保证”等绝对化用语。
2. 话题标签恰好5个、互不重复、与内容相关。
3. 如果图片与产品描述明显不符,confidence 给低于0.5并在 risks 中说明。

程序化检查规则示例配置

本站设计的规则参数示例,映射到 Code 节点逐项校验;阈值可自行调整,非原模板数值。

{
  "checks": {
    "caption_max_length": 150,
    "must_contain_product_name": true,
    "min_confidence": 0.7,
    "banned_phrases": ["最便宜", "100%", "治愈", "保证", "全网最低"],
    "risks_must_be_empty": true,
    "hashtag_count_exact": 5,
    "hashtag_unique": true,
    "hashtag_prefix": "#"
  },
  "on_fail": "把失败原因数组发到 Telegram 审核群并终止流程,不进入人工审批"
}

测试表单数据

本站虚构练习数据;image_url 需换成你真实可公网访问的测试图片地址。

{
  "image_url": "https://example.com/static/test-candle.jpg",
  "product_name": "山雾香薰蜡烛",
  "verified_facts": "大豆蜡材质;单只净含量180克;燃烧时间约35小时;雪松与柑橘香型;产地浙江",
  "cta": "点击主页链接了解详情"
}

输入与输出示例

本站虚构演示,未实际调用 Gemini、Telegram 或 Graph API,返回内容仅为结构示意。

输入

提交上面的测试表单数据:产品“山雾香薰蜡烛”,卖点为大豆蜡、180克、约35小时、雪松柑橘香型,附一张公网测试图片 URL。

对应输出

Gemini 草稿示意:{"caption":"山雾香薰蜡烛,大豆蜡质地,雪松混着柑橘的味道慢慢散开。180克一只,约35小时的陪伴,适合下班后的书桌。点击主页链接了解详情","hashtags":["#香薰蜡烛","#居家好物","#大豆蜡","#雪松香","#生活方式"],"confidence":0.86,"risks":[]}。程序化检查全部通过(长度约60字、含产品名、置信度0.86≥0.7、无禁用词、标签5个不重复),Telegram 收到草稿与审批链接;审批人点“同意”后依次创建容器、轮询 FINISHED、发布并回报 permalink。

做完检查这些

  • 用非 HTTPS 或 .gif 结尾的 URL 提交表单时,流程在校验节点终止且不发 Gemini
  • 草稿缺一个标签或含禁用词时,失败原因出现在 Telegram 且流程不进入审批等待
  • 审批链接点“拒绝”后,Graph API 的 media 创建请求在整个执行记录中不存在
  • 审批通过后执行记录依次出现创建容器、轮询 status_code 为 FINISHED、media_publish 三次请求,最后 Telegram 收到 permalink

容易卡住的地方

  • Instagram 必须是绑定了 Facebook 公共主页的专业账号,个人号无法使用内容发布接口
  • 图片 URL 在 Meta 处理容器期间必须持续公网可访问,带防盗链或短时效签名的地址会导致发布失败
  • 媒体容器轮询需要时间,直接把 Wait/循环去掉会在容器未就绪时发布报错
  • 审批链接是私密恢复 URL,泄露后任何人都能代审批,Telegram 群成员需控制
  • Graph API 版本号会过期,报错时先到 Meta 文档核对当前可用版本再改配置节点
  • Meta 与 Gemini 各自的用量费用以官方计费为准,免费模板不代表调用免费

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Create human-approved Instagram posts with Gemini, Telegram, and Instagram
原作者
Buğra Şıkel
原始发布日期
2026-09-30T15:19:52.645Z
来源
https://n8n.io/workflows/20222