mcpField
S
square-post

square-post

github.com/binance营销与增长1.1k33.0k 次安装2 天前更新
代码仓库

关于 square-post

square-post 是用于向 Binance Square 发布文本、图片、文章和视频内容的 Skill。它通过本地脚本处理媒体上传与发布,并使用 API 密钥进行身份验证。

主要功能

  1. 01发布文本帖和文章
  2. 02发布最多含 4 张图片的帖子
  3. 03发布带自动生成封面的视频
  4. 04发布前上传并处理媒体
  5. 05安全处理 Binance Square API 密钥

适用场景

  1. 01向 Binance Square 发布简短文本
  2. 02发布带封面的文章
  3. 03发布带提取帧封面的视频帖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/binance/binance-skills-hub --skill square-post

安装后在 Claude Code 中输入/square-post确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
scripts/
lib.mjs
post-image.mjs
post-text.mjs
post-video.mjs
save-key.mjs

详细介绍

Square 发布技能

用途

通过运行 scripts/ 中的本地脚本,向 Binance Square 发布新内容。

支持的帖子类型:

  • 纯文本短帖
  • 最多包含 4 张图片的图片帖子
  • 带标题和可选封面图片的长文
  • 使用自动生成封面图片的视频帖子

常规发布时,不要手动编写 API 请求。上传、轮询、封面生成和发布操作均由脚本负责。

运行时依赖项

  • Node.js 18 或更高版本。脚本使用原生 ES 模块和内置的 fetch API。
  • 视频帖子需要 ffmpeg,因为 post-video.mjs 会提取第一帧作为封面图片。
  • 如果用户未提供视频时长,则需要 ffprobe。
  • Binance Square OpenAPI 请求和预签名媒体上传都需要网络访问。

身份验证

发布需要 Binance Square OpenAPI 密钥。

发布前:

  • 如果用户环境中存在 BINANCE_SQUARE_OPENAPI_KEY,优先使用该值。
  • 如果不存在,脚本会自动检查 ~/.config/binance-square/openapi-key。
  • 如果找不到有效密钥,请先让用户提供 API 密钥。
  • 如果用户希望在后续请求中重复使用该密钥,请使用 BINANCE_SQUARE_OPENAPI_KEY=<apiKey> node scripts/save-key.mjs 保存;否则仅在当前命令环境中使用。
  • 告知用户可在此处创建 API 密钥:https://www.binance.com/square/creator-center/home

只能通过 BINANCE_SQUARE_OPENAPI_KEY(环境变量或已保存的文件)传递密钥。切勿将其写入命令参数或打印完整密钥——CLI 参数会出现在 ps 输出和 shell 历史记录中。提及密钥时,只显示前 5 个和最后 4 个字符,例如 abc12...xyz9。

脚本

所有命令都应在此技能目录中运行。

文本或文章帖子

用于纯文本短帖,或不带图片的长文。

node scripts/post-text.mjs --text "Hello #crypto $BTC"

带标题且无封面的长文:

node scripts/post-text.mjs --text "Full article body..." --title "Market Report"

标志:

  • --text 必填,帖子文本内容
  • --title 可选,用于设置文章类内容
图片帖子

用于图片短帖,或带封面图片的长文。

node scripts/post-image.mjs --text "Chart analysis" --images "./chart1.png,./chart2.png"

带标题和封面的长文:

node scripts/post-image.mjs --text "Full analysis..." --title "Market Report" --cover "./chart.png"

标志:

  • --text 必填,帖子或文章内容
  • --images 仅图片短帖必填。使用逗号分隔的图片路径,最多 4 张。
  • --title 可选,用于设置文章类内容。提供此参数时,不要传入 --images。
  • --title 存在时,带媒体的文章必须提供 --cover。文章模式恰好支持一张封面图片。

脚本会上传每张图片,等待处理完成,然后使用后端返回的已处理图片 URL 发布。如果提供了 --title,脚本会发布 contentType=2,要求提供 --cover,并仅将上传后的图片 URL 作为 cover 发送。如果未提供 --title,脚本会发布 contentType=1,并将所有 --images 作为 imageList 发送。

视频帖子

用于视频帖子。

node scripts/post-video.mjs --video "./video.mp4" --duration 7.5 --text "My analysis"

标志:

  • --video 必填,本地视频路径
  • --duration 必填,视频时长(秒)
  • --text 可选,帖子文本内容

脚本会上传视频并等待处理完成,然后使用 ffmpeg 提取第一帧,将该帧作为封面图片上传,并在请求中包含 cover 进行发布。

如果用户未提供时长,请在运行脚本前使用 ffprobe 确定时长。

Agent 工作流

  1. 解析 API 密钥(参见 Authentication)。如果无法解析,请停止操作,并先询问用户。

  2. 根据下表选择符合用户意图的脚本。然后对照 Constraints 进行验证——如果违反任何约束,请说明原因,不要运行脚本。

    用户意图脚本必需标志
    短文本帖子post-text.mjs--text
    长文章,不含媒体post-text.mjs--text --title
    图片短帖子(1–4 张图片,无标题)post-image.mjs--text --images "<p1,p2,...>"
    带封面的文章post-image.mjs--text --title --cover
    视频帖子post-video.mjs--video --duration(+ 可选的 --text)
  3. 运行前先处理边界情况:

    • 有标题 + 恰好一张图片 → 该图片作为封面(使用 --cover,而非 --images)。
    • 有标题 + 多张图片 → 停止操作,并询问用户要将哪张图片设为封面。
    • 视频未提供时长 → 先运行 ffprobe 获取时长。
  4. 完全保留用户提供的内容。不要改写、翻译、添加话题标签或现金标签,也不要更改标点。$coin 和 #topic 文本须原样传递——后端会解析它们。

  5. 运行脚本时,将 BINANCE_SQUARE_OPENAPI_KEY 注入命令环境,仅用于本次操作(绝不可将其作为 CLI 参数传入)。

  6. 报告结果:

    • 成功时,返回脚本打印的 ID 和 Link。
    • 如果脚本打印 Success!,且 ID: unavailable 和 Link: unavailable,则视为成功——提交后 /content/add 返回了 504,因此无法获取帖子 ID 或链接。
    • 失败时,提供脚本错误以及任何 API 错误代码/消息。

约束

  • 图片:每篇帖子最多 4 张;文章封面必须恰好为 1 张图片。
  • 视频:每篇帖子最多 1 个。
  • 单篇帖子中,图片和视频不能同时使用。
  • 仅附加用户明确提供的媒体;不要自动附加媒体。
  • 不得修改用户提供的文本。#topic 和 $coin 由服务端解析。
  • 每日限额:每天 100 篇帖子、400 次上传。

常见错误

  • 220003:未找到 API 密钥。
  • 220004:API 密钥已过期。
  • 220009:已超过 OpenAPI 每日发帖限额。
  • 220014:已超过每日上传限额。
  • 20002 或 20022:检测到敏感词。
  • 20013:内容长度受限。
  • 20020 或 220011:内容正文不能为空。
  • 30008、2000001 或 2000002:账号或设备受到发帖限制。

范围

此技能仅支持发布新帖子,不支持:

  • 读取、列出或搜索现有帖子
  • 编辑或删除帖子
  • 评论、点赞或其他互动
  • 用户资料或账号管理
  • 定时发布或草稿

评论

支持 Markdown