Communitygithub.com

sultanlive/instagram-post

通过OpenClaw、Hermes、Claude Code或Codex发布Instagram帖子、Reels和轮播,并支持定时发布。通过1Social MCP服务器(OAuth认证,无需API密钥)发布到用户自己的Instagram账户,首先检查Instagram的标题、标签、宽高比和媒体规则,可提前30天安排发布,并返回交付回执。

instagram-post 是什么?

本技能为AI代理(如Claude Code、Codex、OpenClaw、Hermes)提供了一个专门的工具,用于直接发布和管理Instagram内容。它通过1Social MCP服务器(使用标准OAuth认证,无需存储API密钥)将照片、Reels或轮播发布到用户自己的Instagram账户。该技能在执行发布前会强制检查Instagram的规则,包括标题长度(2200字符)、标签数量(30个)、图片宽高比(4:5到1.91:1)以及媒体附加要求。它支持立即发布或提前最多30天定时发布,并生成详细的每个网络交付回执,包括成功、失败或未知状态。除了发布,该技能还提供全面的发布后管理功能,如检查状态、更新定时帖子、取消发布、删除已发布的帖子,以及处理交付失败。它类似于一个集成的Instagram管理助手,可确保合规性,防止重复发布,并在需要用户确认或外部操作时(如重新连接被撤销的关联)明确提示。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/sultanlive/1social-skills/tree/main/plugins/instagram-by-1social/skills/instagram-post

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Instagram with 1Social

1Social 将内容发布到用户自己的 Instagram 账户,并报告实际到达状态。

设置(只需一次)

以下步骤驱动 1Social MCP 服务器。如果 list_accounts 等工具不可用,请先连接它。登录采用浏览器中的 OAuth 方式,无需存储 API 密钥。运行这些命令前请先征得用户同意——登录步骤会打开一个页面,让用户自行登录 1Social。

  • OpenClaw: openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}',然后 openclaw mcp login 1social。使用 openclaw mcp doctor 1social --probe 检查。
  • Hermes: 添加到 ~/.hermes/config.yaml:
    mcp_servers:
      1social:
        url: "https://mcp.1social.dev/mcp"
        auth: oauth
    
    然后 hermes mcp login 1social(在无头主机上:hermes mcp login 1social --flow device)。
  • Claude Code: claude mcp add --transport http 1social https://mcp.1social.dev/mcp
  • 其他客户端: https://1social.dev/mcp 列出了每种客户端的设置方法。

用户需要一个 1Social 账户。新账户享有免费试用期;试用期后发布内容需要付费套餐(https://1social.dev/pricing)。

工作流程

  1. 找到账户。 调用 list_accounts。它会返回已关联的频道及其 ID、每个网络的实时限制、套餐和剩余月度配额。如果没有关联 Instagram 账户,请告知用户到 https://1social.dev/app 关联一个账户——关联操作需要浏览器,无法通过聊天完成。如果 list_accounts 报告的限制与此技能不同,请以 list_accounts 为准。
  2. 为网络起草内容。 按照以下规则撰写帖子。一个帖子由一系列 segments 组成;每个 segment 是 { text, mediaIds? }。
  3. 附加媒体。
    • 用户在聊天中附加了文件 → 放入 media。
    • 你有一个公开的 https 链接 → 放入 mediaUrls。
    • 你只有磁盘上的文件(OpenClaw、Hermes、Claude Code、Codex 或其他 CLI 代理)→ 调用 upload_media 并按照其描述中的上传步骤操作,然后将返回的 publicUrl 放入 mediaUrls。localhost 的 URL 永远无效。在此之前,向用户准确展示你要上传哪些文件,并等待用户确认:上传会立即获得一个公开链接,如果之后拒绝发布该帖子,文件不会被移除。
  4. 预览。 使用频道 ID 和草稿调用 preview_post。该操作免费且不会发布任何内容。修复它报告的每个问题,然后再次预览。
  5. 与用户确认。 向用户展示最终文本、目标账户、媒体以及发布时间。发布是公开的,且某些网络无法删除已发布的帖子,因此请等待明确的确认。
  6. 发布或定时发布。 调用 publish_post。scheduledAt: null 表示立即发布;UTC ISO-8601 时间戳(例如 2026-11-03T07:00:00Z)用于定时发布(未来时间,最多提前 30 天)。请自行将用户的本地时间转换为 UTC,如果用户指定的时间没有时区,请询问时区。设置一个 idempotencyKey(为此草稿生成一个 8–128 字符的稳定字符串),以防止重复调用导致重复发布。
  7. 如实报告。 结果是每个网络对应的回执。请完全按照返回的内容报告每个网络。unknown 表示 1Social 确实无法判断帖子是否已发布——请如实告知,切勿将其称作成功或失败。

Instagram 规则

  • 每个帖子都需要一张图片或一段视频。仅有标题会被拒绝——请在起草前向用户索要媒体内容。
  • 标题限制:2,200 字符。最多 30 个标签;3–5 个相关标签通常比一大串标签效果更好。
  • 图片宽高比必须在 4:5(竖屏)到 1.91:1(横屏)之间。正方形 1:1 是安全的。宽幅横幅会被 Instagram 拒绝,并提示“宽高比”错误。
  • PNG 和 JPEG 格式均可。
  • 不支持多段内容:如果草稿包含多个 segments,1Social 会将它们合并为一个标题。请直接写一个标题。
  • 标题中的链接在 Instagram 上不可点击。如果用户希望引流,建议使用“链接在个人简介”之类的表述,而非原始 URL。
  • 已发布的 Instagram 帖子无法通过 1Social 删除——Instagram 没有提供相关的删除 API。发布前请确保用户对标题满意。

写作技巧

  • 在前 125 个字符内使用钩子开头——这是显示在“更多”按钮之前的内容。
  • 将标签放在标题末尾,并在换行后放置。

同时发布到其他网络

同一个 1Social 账户可以一次将一篇帖子发布到 Instagram、TikTok、LinkedIn、X、Threads、Facebook Pages、YouTube Shorts 和 Bluesky:从 list_accounts 获取多个频道 ID 即可。preview_post 会针对每个选定的网络检查草稿。

发布后

  • 检查状态: list_posts(提供 postId 可查看单个帖子)。其中包含网络报告的存储互动指标。
  • 修改定时帖子: update_post。仅在帖子发布前有效。
  • 取消定时: cancel_post。对于尚未发布的帖子,使用此操作,而不是 delete_post。
  • 删除已发布的帖子: delete_post,需用户确认后执行。分别报告每个网络实际删除的结果:Instagram、TikTok、Threads 和 YouTube 的帖子会保持在线,只有用户本人可以删除。
  • 交付失败: retry_delivery 会重试一个网络,并再次消耗配额。对于永久性失败(例如连接被撤销)将拒绝执行——此时用户必须到 https://1social.dev/app 重新连接。
  • 交付状态为 unknown: 请用户自行查看网络。只有当用户告知帖子是否已发布时,才调用 confirm_delivery 并输入用户的回答。切勿猜测,也切勿在未征询用户意见的情况下使用 force 参数调用 retry_delivery——这可能导致发布第二个副本。

相关技能