Instagram Publisher 是一个用于把本地图片发布成 Instagram 轮播帖(carousel)的技能,面向需要直接向 Instagram Business 账号发布内容的场景。
用途 当你需要把一组本地图片按顺序发布为 Instagram 轮播帖时使用该技能。它覆盖从图片上传、创建媒体容器到最终发布的完整工作流。
主要能力
- 发布轮播帖:上传图片并发布 Instagram 轮播帖。
- 试运行:使用 --dry-run 标志测试完整发布流程而不实际发布。
- 图片上传:把本地 JPEG 图片上传到 imgBB(需要 API key)。
- 状态检查:在发布前监控媒体容器的处理状态。
使用方式 工作流如下:
- 列出 squads/{squad}/output/images/ 中的 JPEG 文件,按名称排序。若未找到文件,则停止并请用户先添加图片。
- 通过 AskUserQuestion 向用户展示图片列表并确认顺序。
- 从内容草稿中提取说明文字:使用 hook slide 文本 + CTA slide 文本,最多 2200 字符(Instagram 限制)。
- 运行发布脚本:
node --env-file=.env squads/{squad}/tools/publish.js
--images "<comma-separated-ordered-paths>"
--caption "<caption>" 添加 --dry-run 可在不实际发布的情况下测试完整流程。 - 成功时:把帖子 URL 和帖子 ID 保存到步骤输出文件。失败时:显示错误并询问用户如何处理。
首次配置 把 .env.example 复制为 .env,并填写两个必需变量: INSTAGRAM_ACCESS_TOKEN= INSTAGRAM_USER_ID=
INSTAGRAM_ACCESS_TOKEN 的获取: 前置条件:连接到 Facebook 页面的 Instagram Business 账号,以及在 developers.facebook.com 创建的应用(类型:企业)。 获取长期令牌(有效期 60 天):
- 访问你的应用 → Graph API Explorer。
- 在顶部下拉菜单中选择你的应用。
- 点击“生成访问令牌”。
- 启用权限:instagram_content_publish、instagram_basic、pages_read_engagement。
- 点击“生成访问令牌”并授权——你会获得一个短期令牌(1 小时)。
- 用以下 GET 转换为长期令牌(60 天): https://graph.facebook.com/oauth/access_token ?grant_type=fb_exchange_token &client_id={APP_ID} &client_secret={APP_SECRET} &fb_exchange_token={TOKEN_CURTO} (APP_ID 和 APP_SECRET:你的应用 → 设置 → 基本。)
- 复制响应中的 access_token 并粘贴到 .env。
- 令牌 60 天后过期,重复该流程以续期。
INSTAGRAM_USER_ID 的获取:
- 在 Graph API Explorer(使用上述令牌)中,GET /me/accounts。
- 在响应中找到你的 Facebook 页面并记下其 id。
- GET /{page-id}?fields=instagram_business_account。
- 复制 instagram_business_account 中的 id——这就是你的 User ID。
适用场景 适合需要把本地图片批量、按顺序发布为 Instagram 轮播帖的自动化流程,尤其是已有 Instagram Business 账号和 Facebook 页面、并愿意自行申请 API 凭证的用户。
限制
- 图片:仅 JPEG,每个轮播 2 到 10 张。
- 说明文字:最多 2200 字符。
- 需要 Instagram Business 账号(不支持 Personal 或 Creator)。
- 速率限制:每 24 小时最多 25 条 API 发布的帖子。
- 图片上传到 imgBB 需要自备 API key(来自 https://api.imgbb.com/)。
- 令牌 60 天过期,需要手动续期。