关于 square-post
square-post 是用于向 Binance Square 发布文本、图片、文章和视频内容的 Skill。它通过本地脚本处理媒体上传与发布,并使用 API 密钥进行身份验证。
主要功能
- 01发布文本帖和文章
- 02发布最多含 4 张图片的帖子
- 03发布带自动生成封面的视频
- 04发布前上传并处理媒体
- 05安全处理 Binance Square API 密钥
适用场景
- 01向 Binance Square 发布简短文本
- 02发布带封面的文章
- 03发布带提取帧封面的视频帖
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ binance/ binance-skills-hub --skill square-post安装后在 Claude Code 中输入/square-post确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdscripts/lib.mjspost-image.mjspost-text.mjspost-video.mjssave-key.mjs详细介绍
Square 发布技能
用途
通过运行 scripts/ 中的本地脚本,向 Binance Square 发布新内容。
支持的帖子类型:
- 纯文本短帖
- 最多包含 4 张图片的图片帖子
- 带标题和可选封面图片的长文
- 使用自动生成封面图片的视频帖子
常规发布时,不要手动编写 API 请求。上传、轮询、封面生成和发布操作均由脚本负责。
运行时依赖项
- Node.js 18 或更高版本。脚本使用原生 ES 模块和内置的
fetchAPI。 - 视频帖子需要
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 工作流
-
解析 API 密钥(参见 Authentication)。如果无法解析,请停止操作,并先询问用户。
-
根据下表选择符合用户意图的脚本。然后对照 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) -
运行前先处理边界情况:
- 有标题 + 恰好一张图片 → 该图片作为封面(使用
--cover,而非--images)。 - 有标题 + 多张图片 → 停止操作,并询问用户要将哪张图片设为封面。
- 视频未提供时长 → 先运行
ffprobe获取时长。
- 有标题 + 恰好一张图片 → 该图片作为封面(使用
-
完全保留用户提供的内容。不要改写、翻译、添加话题标签或现金标签,也不要更改标点。
$coin和#topic文本须原样传递——后端会解析它们。 -
运行脚本时,将
BINANCE_SQUARE_OPENAPI_KEY注入命令环境,仅用于本次操作(绝不可将其作为 CLI 参数传入)。 -
报告结果:
- 成功时,返回脚本打印的
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:账号或设备受到发帖限制。
范围
此技能仅支持发布新帖子,不支持:
- 读取、列出或搜索现有帖子
- 编辑或删除帖子
- 评论、点赞或其他互动
- 用户资料或账号管理
- 定时发布或草稿